1

次の Apache 構成で内部サーバー エラーが発生するのはなぜですか。

# Turn on the rewriting engine
RewriteEngine On

# Redirect "page/" and "page" to "page.php" . Also, redirect "page/en/" and "page/en" to "page.php?lang=en" .
RewriteRule ^(.+)/?([a-z]?)/?$ $1.php?lang=$2 [QSA,NC,L]

というわけで、基本的にはページの最後に「.php」をつけて、「/en」の部分があればそれを言語パラメータとして追加するだけでいいと思います。

4

1 に答える 1

0

ルールが失敗する理由:書き換えルールが無限ループを引き起こし、Apache が内部サーバー エラー (500) をスローしていますRequest exceeded the limit of 10 internal redirects

このタスクの書き換えルールを記述する方法は次のとおりです。

RewriteEngine On
RewriteBase /MySite/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)(?:/(.*?)/?)?$ $1.php?lang=$2 [L,NC,QSA]
于 2013-04-25T20:26:03.493 に答える