1

2 つの rewriterules を機能させようとしていますが、一方がアクティブなときに、もう一方が期待どおりに機能しません。

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^/?$ /$1?language=spanish [R=302]
RewriteRule ^(.*)$ /$1?language=spanish [R=302]

2番目のものは、何があっても常に機能しています。2 番目がアクティブでない限り、最初の 1 つは機能しません。これらを連携させるにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

0

フラグを使用Lし、2 番目のルールに条件を追加して、それ以上実行されないようにします。

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^/?$ /$1?language=spanish [R=302,L,QSA]

RewriteCond %{QUERY_STRING} !^language=.+ [NC]
RewriteRule ^(.*)$ /$1?language=something-else [R=302,L,QSA]

L フラグは、現在の書き換えループを終了し、さらに処理するためにルールを挿入します。

于 2013-10-28T15:18:28.763 に答える
0

最初のルールはまったく必要なく、条件は最初のルールにのみ適用され、2 番目のルールには適用されません。

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^(.*)$ /$1?language=spanish [R=302,L]
于 2013-10-28T15:19:51.703 に答える