php拡張子名をURLから非表示にします[重複]

Oct 08 2020

phpまたはhtmlの拡張子名をURLから削除しようとしていますが、インターネット上の多くの投稿を調べてメソッドを試した後、URLが期待どおりに機能しません。私が欲しいのはxxx.com/xxx/home.phpの代わりにxxx.com/xxx/homeです

私のシステム構成

  • AWS上のUbuntu20.04.1LTSリモートサーバー

これまでに試した手順は次のとおりです。

  1. sudo a2enmod rewrite ==>モジュールの書き換えを有効にする
  2. sudo vim apache2.conf ==> config apache2.conf
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
  1. .htaccessファイルを作成する
Options -Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.php$ [NC] RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1.php [L]
  1. .htaccessを私の辞書に置いてください(/var/www/html/.htaccess)

設定を見逃した間違った手順はありますか?誰かがこの問題を手伝ってもらえますか?ありがとうございました!

回答

1 NicoBleiler Oct 08 2020 at 15:11

これを.htaccessに追加して、URLからphpファイル拡張子を非表示にします

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Googlian Oct 08 2020 at 15:14

.htaccessファイルで以下のコードを試してください

# Run Php without filename extension
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

# Return 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]