我有一个使用wordpress在apache 2.2上运行的多语言网站。 url结构是www.domain.it for italian和www.domain.it/?lang=es for(例如)spanish。 我的客户也拥有www.domain.es。我的目标是让用户编写www.domain.es并重定向到www.domain.it/?lang=es 这是我的htaccess:
RewriteBase /
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.es$
RewriteRule ^(.*)$ http://www.domain.it/$1/?lang=es [QSA]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
最后四行是wordpress在某些特定情况下提供index.php。另外两个是我的目标。我现在得到的是一个302页,告诉我文件已经移动了(它再次说明了www.domain.es。如果我加上R = 301,我就不会再运气了。 我究竟做错了什么?任何人都可以帮我停止敲打我的脑袋吗?
答案 0 :(得分:1)
你想让它重定向吗?或者只是在内部处理重写?
您可能需要L
标志告诉它停止尝试执行其他操作并执行重定向:
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.es$
RewriteRule ^(.*)$ http://www.domain.it/$1/?lang=es [L,QSA,R=301]