1

404 およびその他のエラーに対するサーバーの応答で何かをテストしていたところ、404 は正しく機能していました。

example.com/page, example.com/directory/,と入力すると、 example.com/directory/page404 エラーが返されます。

そして、example.com/directory/page/string(123またはここのキーワードなど)試してみたところ、500エラーが返されました。

私はこのコードをmod_rewrite

# redirects index.html to /

RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ /$1 [R=301,L]

# rewrites file.html to file

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

これらの 500 エラーを適切な 404 エラーに変えるにはどうすればよいですか?

4

1 に答える 1

1

ループしている可能性が高いので、次の条件を追加してみてください。

RewriteCond %{ENV:REDIRECT_STATUS} ^$

あなたの最後のルールで。したがって、次のようになります。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

# redirects index.html to /
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ /$1 [R=301,L]

# rewrites file.html to file
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
于 2013-08-02T22:16:48.850 に答える