私のXAMPPローカルホストサーバー上の.htaccessファイルを使用して、拡張子.phpのみを削除してみました。次の行を書きます。
RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews
## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
私は自分の目標を達成するためにもっと多くのオプションを試しましたが、何も変わっていません。私は何か悪いことをしましたか?
回答:
回答№1は0あなたが持っているかどうか確認する AllowOverride All
の中に httpd.conf file(apacheの設定ファイル) Windows上でXAMPPを使用している場合は、httpd.confファイルは次のようなディレクトリに存在するはずです。 C:xamppapacheconfhttpd.conf
追加する AllowOverride All
Directoryタグ内の行例えば:
<Directory C:xampphtdocs>
AllowOverride All
Allow from all
</Directory>
P.S上書きを許可することで、サーバーに許可するように指示します。 .htaccess
サーバーのデフォルト設定を上書きするファイル。
編集:私は以前にAllowOverrideを "On"と言ったことを残念に思う。 AllowOverride "All"にする必要があります。これは私のUbuntuではうまくいきます。私はそれをWindows(xampp)で動作させる方法をすぐに見つけようと思います。
回答№2の場合は0
以下はapache2で私のために働きます。うまくいけば、それはXAMPPでも動作します。 これはあなたのコードとほぼ同じですが、要求されたファイル名をチェックします。 存在しないそしてそのPHPファイル する 存在する。
RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews
## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ %{REQUEST_FILENAME}.php [NC,L]