【问题标题】:.htaccess for 301 rewrite for www/non www canonical, with exceptions for subfolder (another domain).htaccess for 301 rewrite for www/non www canonical,子文件夹(另一个域)例外
【发布时间】:2012-04-22 15:12:17
【问题描述】:

我有一个域并将其托管在 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/non www canonical .htaccess 工作,但仍然有第二个站点正确显示,也解决了 www/non www canonical。

我到处搜索这个特定问题,但没有找到如何编写 .htaccess 文件。谁能给我一个简单的例子来说明如何做到这一点?

【问题讨论】:

    标签: .htaccess mod-rewrite redirect web


    【解决方案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

    【讨论】:

    • 谢谢!对于 secondsite.com,如果我也想解决规范问题,我最好将另一个 .htaccess 文件放在 /secondsite 文件夹中吗?或者是否可以在根文件夹的 .htaccess 中添加另一个规则?
    • 我将相同的文件添加到 /secondsite 文件夹(当然指定了“secondsite”而不是“firstsite”),现在一切正常,并且两个站点的规范解析。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多