htaccess を使用して、URL から .php 拡張子を削除します。同じ名前のファイルとディレクトリがある場合に問題が発生します。.php 拡張子を削除すると、サーバーはディレクトリにアクセスしようとしていると認識し、アクセスを拒否します。
例 www.europe.com/italy.phpはwww.europe.com/italyに変わりますが、italy という名前のフォルダーがあるため、サーバーはアクセスを拒否し、「禁止されています。これで /italy/ にアクセスする権限がありません。サーバ"
これが私のHTACCESSです
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
更新:魅力のように動作する最終的なコード!
DirectorySlash Off
IndexOptions FancyIndexing
Options All
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*[^.]+\.php
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.yoursite.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(([^/]+/)*[^/.]+)$ /$1.php [L]