我正在尝试使用.htaccess文件将所有非www页面重定向到我网站上的www页面。这是一个多语言网站,它在丹麦语的根文件夹中设置了一个站点,在www.domain.com/en /。中设置了英文版本。
我得到了非www重定向工作丹麦部分,但我在英文子文件夹中遇到问题。每个文件夹都有自己的.htaccess。
在丹麦语结束时,我的要求如下:
#301 redirect #RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*) http://www.example.com/$1 [R=301]
我认为英语版本应该是这样的:
#RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com/en/$
RewriteRule ^(.*) http://www.example.com/en/$1 [R=301]
我真的很感激我能得到的任何帮助。
答案 0 :(得分:0)
您不能将路径包含在%{HTTP_HOST}
变量的一部分中,仅包含主机名。因此,RewriteCond %{HTTP_HOST} ^example\.com/en/$
总是为假。
您可以将路径作为重写规则中正则表达式的一部分进行匹配:
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^en/(.*)$ http://www.example.com/en/$1 [R=301]
但这没有任何意义。如果您将这些规则放在/en/
文件夹中,那么您根本不需要检查/en/
:
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ http://www.example.com/en/$1 [R=301]
如果您尚未请求以/en/