我有一个多语言wordpress网站,并希望将给定区域的网站重定向到给定语言,
xyz.de --> xyz.de/de/
xyz.co.uk --> xyz.co.uk/en/
直接访问xyz.de/de
和xyz.co.uk/en
工作正常。所以在wordpress方面没有问题。
现在,我正在尝试更改xyz.de
和xyz.co.uk
的htaccess文件,以便重定向网站。
考虑xyz.co.uk
我想添加一个RewriteCond,这样只要在/en
之后没有xyz.co.uk
跟踪,它就会自动添加/en
。
例如xyz.co.uk/<trailing address>
会产生xyz.co.uk/en/<trailing address>
到目前为止,我有以下代码,这些代码似乎无法正常工作,
RewriteCond %{REQUEST_URI} !^/en
RewriteRule ^(.*)$ http://xyz.co.uk/en/$1 [L]
对/en
的否定无效!我也试过
RewriteCond %{REQUEST_URI} !/en
RewriteRule ^(.*)$ http://xyz.co.uk/en/$1 [L]
有人能告诉我哪里出错了吗?好像我在编写RegEx时出错了,并建议是否有更好的方法来实现相同的目标,这不会影响不同领域的搜索引擎优化。
答案 0 :(得分:1)
使用THE_REQUEST
变量代替REQUEST_URI
:
RewriteCond %{HTTP_HOST} \.co\.uk$ [NC]
RewriteCond %{THE_REQUEST} !/en/ [NC]
RewriteRule ^ /en%{REQUEST_URI} [L,R=302,NE]
R=301
。