2015-02-08 94 views
1

我正尝试使用.htaccess文件将所有非www页面重定向到我网站上的WWW页面。这是一个多语言网站,它在丹麦语的根文件夹中设有一个网站,在www.domain.com/en/中有一个英文版网站。301通过.htaccess重定向非子文件夹中的WWW

我得到了非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

不能将路径作为%{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/

+0

啊..这使得很多感觉现在..感谢您的答复! :) – 2015-02-09 16:36:02