我目前正在通过查找查询参数重定向到语言子网站。这有效,但我想添加对更多语言的支持。
当前工作代码:
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{QUERY_STRING} ^ll=es$ [NC]
RewriteCond %{REQUEST_URI} !^(/es/)
RewriteRule (.*) https://domain.com/es/$1 [R=302,L,QSA]
我可以让它搜索任何其他语言,但是当它被重新插入规则时,我会陷入困境。
我想做的是这样的事情:
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{QUERY_STRING} ^ll=(es|fr|de)$ [NC]
RewriteCond %{REQUEST_URI} !^(/$2/)
RewriteRule (.*) https://domain.com/$2/$1 [R=302,L,QSA]
答案 0 :(得分:0)
对于RewriteCond
中的反向引用匹配,您使用%N
而非$N
read more 。因此规则是:
RewriteCond %{QUERY_STRING} (?:^|&)ll=(es|fr|de)\b [NC]
RewriteCond %{REQUEST_URI} !^/%1/
RewriteRule ^(.*)$ https://domain.com/%1/$1 [R=302,L,QSA]
(?:)
不会存储用于反向引用的匹配项。