私はこの.htaccessファイルを持っています:
Options -Indexes
RewriteEngine on
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]*)/?(.*)$ ./$1.php
RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)$ - [L,R=404]
ただし、localhost/example.php
、500内部サーバーエラーを返します。
助けてください?ありがとう。
編集:
表示される完全なエラーメッセージは次のとおりです。
Not Found
The requested URL /example.php was not found on this server.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
ほとんどの場合、ループエラーのために500を取得しています。
最後のルールから404.php
を除外する:
ErrorDocument 404 /404.php
Options -Indexes -MultiViews
RewriteEngine on
RewriteCond %{THE_REQUEST} \.php [NC]
RewriteRule ^(?!404\.php)$ - [L,NC,R=404]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+)/?(.*)$ ./$1.php [L]
404.phpは実際にファイルシステムのルートに設定されていますか?
私は推測していない。
../404.phpのようなものを試してください
ところで:あなたのApacheログファイルを見ましたか?
ページで.php拡張子を非表示にする場合は、次を実行して.htaccessファイルからその拡張子を削除してください。
変更:ErrorDocument 404 /404.phpからErrorDocument 404/404
お役に立てれば。
JJ