我正在努力使工作2重写,但是当另一个处于活动状态时,其中一个没有按预期工作。
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^/?$ /$1?language=spanish [R=302]
RewriteRule ^(.*)$ /$1?language=spanish [R=302]
无论如何,第二个总是在工作。第一个不起作用,除非第二个不活跃。 我如何将这些工作结合在一起?
谢谢。
答案 0 :(得分:0)
使用L
标志并在第二条规则中添加条件以避免进一步执行:
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标志结束当前重写循环并注入规则以供进一步处理。
答案 1 :(得分:0)
您根本不需要第一条规则,您的条件只适用于第一条规则,而不是第二条规则。
RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^(.*)$ /$1?language=spanish [R=302,L]