RewriteCond 针对的是 www.mysite.com 还是 mysite.com?

RewriteCond 针对的是 www.mysite.com 还是 mysite.com?

对于 www.mysite.com 或 mysite.com 来说,适当的 RewriteCond 是什么?

我尝试过此操作,但浏览器中出现重定向错误

RewriteCond %{HTTP_HOST} ^(www\.mysite|mysite)\.com [NC]

编辑

<Directory /var/www/maintenance/public_html>
        Options +FollowSymlinks
        RewriteOptions inherit
        RewriteEngine on
        #
        RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
        RewriteRule ^ http://www.example.com/ [R=301,L]

        RewriteCond %{HTTP_HOST} ^www.example\.com$ [NC]
        RewriteRule ^/. http://www.example.com/ [R=301,L]
</Directory>

答案1

您已删除了另一个问题,该问题实际上包含有关问题的详细信息。您的 RewriteCond 正确地匹配了这两个主机名,问题是您正在重定向http://www.mysite.com/http://www.mysite.com/,这就是循环的来源。只有当请求不是 时,您才需要重定向http://www.mysite.com/。您可能需要两条规则。

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^ http://www.mysite.com/ [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteRule !^/?$ http://www.mysite.com/ [R=301,L]

第一条规则仅对 mysite.com 起作用,并将所有内容重定向到。http://www.mysite.com/第二条规则仅对 www.mysite.com 起作用,并将除 之外的所有内容重定向到。(意思是匹配任意一个字符 - 因为没有任何其他字符,所以不会匹配。)/http://www.mysite.com/./

相关内容