2012-02-02 15 views
0

なぜリダイレクトループが発生していますか?私が達成しようとしています何htaccess - リダイレクトループ

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /summary/1/document/ 

RewriteRule !^[a-z]{2}/ /summary/1/document/en/ [L,R] 
RewriteRule ^([a-z]{2})/ ../index.php?lang=$1&type=document 

は次のとおりです。

指定なし言語がありません場合は、英語にリダイレクト:

例:

website.com/summary/1/document --> website.com/summary/1/document/en/ 
website.com/summary/1/document/fr/ [no redirect] 

と言語が指定され、リライト../index.phpの内部ではlangとtypeパラメータを使用します。旗Lから

答えて

1

Apache Docs: flag_l

あなたはどちらか.htaccessファイルまたは<Directory>セクションでのRewriteRuleを使用している場合、ルールがどのように処理されるかをある程度理解することが重要です。これの簡略化された形式は、ルールが処理されると、書き換えられた要求がURL解析エンジンに渡され、URL解析エンジンがその内容を処理することです。書き直された要求が処理されると、.htaccessファイルまたはセクションが再び発生する可能性があり、したがって、ルールセットは最初から再実行される可能性があります。最も一般的には、ルールの1つが内部または外部のリダイレクトを引き起こし、要求プロセスをやり直す場合に発生します。

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /summary/1/document/ 

RewriteRule ![a-z]{2}/$ /summary/1/document/en/ [NC,L,R] 
RewriteRule ^([a-z]{2})/$ ../index.php?lang=$1&type=document [L,QSA] 


書き換え要求がバックURL解析エンジンに渡され、以来、後にこれを試してみてください、最初の書き換えルールから

をリダイレクト

関連する問題