2

http://example.com/not-hereに移動すると、404 の代わりに内部サーバー エラーが発生します。これが私の htaccess ファイルです (拡張子が削除されるため、abc.php は example.com/abc ではなく example.com/abc としてアクセスできます) example.com/abc.php):

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.php [L,QSA]

DirectoryIndex login.php index.php

ErrorDocument 403 /error.php?type=403
ErrorDocument 404 /error.php?type=404
ErrorDocument 500 /error.php?type=500

それは非常に単純なものですが、私には見えません。助けが必要です

4

3 に答える 3

3

.htaccess には次のものが必要です。

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !rewrited
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.php?rewrited=1 [L,QSA]

DirectoryIndex login.php index.php

ErrorDocument 403 /error.php?type=403
ErrorDocument 404 /error.php?type=404
ErrorDocument 500 /error.php?type=500
于 2011-06-01T16:12:42.253 に答える
1

これに遭遇したときに私がすることは、行をコメントアウトすることです。書き換えセクションをコメントアウトして、それが機能するかどうかを確認します。コードをコメントアウトするには、最初の文字として # を入力します。コードを犯人行に絞り込むことがすべてです。

于 2011-06-01T13:53:26.733 に答える
0

internal server errorRewriteRule の無限ループが原因です。

RewriteRule を次のように変更するだけです。

RewriteRule ^(.+)(?<!\.php)$ /$1.php [L,NC]

Negative lookbehind (?<!\.php)複数の内部リダイレクトを防ぎます。

于 2011-06-01T16:32:20.240 に答える