我的网站根目录 en 和 te 中有两个文件夹。我需要编写 .htaccess 文件,将请求重定向到 en/ 如果 cookie language=en 或重定向到 /te of if language!=en 或未设置 cookie 语言。
RewriteEngine On
RewriteBase /cookie/
RewriteCond %{HTTP_COOKIE} language=te [NC]
RewriteRule ^(.*)$ /te [L]
但上面的代码不起作用
不确定您是要重定向用户,还是在内部重写 url(删除 R=301):
RewriteEngine On
RewriteCond %{HTTP_COOKIE} language=(en|te) [NC]
RewriteCond %{REQUEST_URI} !^/(te|en)/ [NC]
RewriteRule ^(.*)$ /%1/$1 [R=301,L]
您的代码不会重定向用户,因为您遗漏了适当的重写标志。相反,它只会重写请求(在服务器上静默地)而不更改 url。
将您的规则更改为:
RewriteRule ^(.*)$ /te/$1 [R=301]
(您也没有将页面的路由附加到语言键 - 我还附加了$1
.)