2017-10-14 9 views
2

「をリダイレクトの最大数に達した」原因になっている:これは、よう/page.phpは/ページとして書き換えられている.htaccessファイルには、奇妙な私の.htaccessに私はこれを持っているエラー

# Remove php extension 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) $1.php [L] 

問題は、私は「/」最後に、私はエラー500を取得していますし、これがログに記録された非既存のURLに行けばということである。

2017-10-12 17:51:07.857 [ERROR] [103.9.XXX.XXX:50468] Maximum number of redirect reached. 

サーバーが実際にですLite Speed http://www.litespeedtech.com/でも、Apacheで同じ問題が発生しています。

どうすれば修正できますか?

答えて

0

はい、最初の再配線の後に再度page/page/.phppage/.php.phpなどの結果を再配線します。

RewriteEngine On 
RewriteBase/
# exclude all existing directories 
RewriteCond %{REQUEST_FILENAME} !-d 
# exclude all existing files 
RewriteCond %{REQUEST_FILENAME} !-f 
# exclude any request with .php at the end 
RewriteCond %{REQUEST_URI} !^.*\.php$ [NC] 
# Ignore leading and trailing slashes 
RewriteRule ^/?(.*)/?$ $1.php [L] 

説明はコメントで

+0

OK感謝です:ちょうどこれを行います!しかし、[L]は "last"を意味しません。つまり、書き直しを続けるべきではありません...? – Merc

+0

これは誤解ではありません。それは、他の人にこのルールの後にルールを書き直させると、次のルールがスキップされることを意味します。だからこの意味では、この反復の最後のものです。 – Webdesigner

+0

それで、一度書き直すと、URLは再び完全な書き換えを行います...? – Merc

1

を使用できます。ファイルが書き換え前に存在しているかどうかをチェック

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

を。
最後に/と動作します。

関連する問題