【问题标题】:htaccess wildcard redirect not workinghtaccess 通配符重定向不起作用
【发布时间】:2014-04-28 16:43:04
【问题描述】:

我在一个网站上有一个 htaccess 通配符重定向,它将另一个域重定向到一个主域,并且还将 www 重定向到没有带有主域通配符的 www。以下规则是用 cpanel 制定的,但它不使用通配符。

这些相同的规则在许多其他网站上都可以正常工作,只是不是那个有问题的网站。

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

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

有什么想法吗?我不知道是什么原因造成的。

添加更多说明: 如果我去www.domain1.ca/some-page 它应该重定向到domain1.ca/some-page 然而,它却转到domain1.ca

在每个浏览器中测试,重新制定规则,删除所有缓存并进行多次 dns 刷新,没有任何改变。

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    你可以使用:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]
    
    RewriteCond %{HTTP_HOST} ^(www\.)?domain2\.com$ [NC]
    RewriteRule ^ http://domain1.ca%{REQUEST_URI} [R=301,L,NE]
    

    【讨论】:

    • 导致同样的问题。
    • 忽略通配符,www.domain1.ca/hello 转到 domain1.ca。而不是 domain1.ca/hello。
    • 在这些规则中肯定不会发生这种情况,在新的浏览器中测试。
    • 我做的第一件事,删除了所有缓存并进行了 dns 刷新,我确实理解这个“应该”工作我只是完全迷失了为什么它不是:'(
    • 是的,Joomla,尽管根据我们可以看到重定向在传递给 PHP 之前发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    相关资源
    最近更新 更多