.htaccess for 301 rewrite for www / non www canonical,with subfolder(另一个域)

时间:2012-04-10 10:18:29

标签: .htaccess mod-rewrite redirect web

我有一个域名并在godaddy.com上托管。我有firstsite.com,它位于托管帐户的根目录中。我有一个.htaccess文件,该网站工作正常,并将所有firstsite.com流量简单重定向到www.firstsite.com。它是

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.firstsite\.com$ 
RewriteRule (.*) http://www.firstsite.com/$1 [R=301,L] 

但是,我已将新域名添加到我的托管帐户,该帐户包含在网站的子文件夹中:/secondsite

如果没有.htaccess文件,当我转到secondsite.com时,它会显示为secondsite.com。但是,使用.htaccess文件时,它显示为www.firstsite.com/secondsite

我想让www /非www规范.htaccess为第一个网站工作,但仍然可以正确显示第二个网站,同时使用www / non www canonical已解决。

我已经到处搜索了这个特定问题,但还没有找到如何编写.htaccess文件的代码。有人能给我一个如何做到这一点的快速例子吗?

1 个答案:

答案 0 :(得分:1)

在您的情况下(指向同一文件夹的多个域),您需要在指定域名时更具体。而不是否定使用匹配:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^firstsite\.com$ 
RewriteRule ^(.*)$ http://www.firstsite.com/$1 [R=301,L] 

以上内容会将请求重定向至http://firstsite.com/bla-blahttp://www.firstsite.com/bla-bla,但不会触及secondsite.com,也不会触及http://anything.firstsite.com/bla-bla