RewriteCond 用于 www.mysite.com 或 mysite.com?

use*_*637 1 linux apache-2.2

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

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

RewriteCond %{HTTP_HOST} ^(www\.mysite|mysite)\.com [NC]
Run Code Online (Sandbox Code Playgroud)

编辑

<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>
Run Code Online (Sandbox Code Playgroud)

mgo*_*ven 5

您已经删除了其他问题,该问题实际上包含有关该问题的详细信息。您的 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]
Run Code Online (Sandbox Code Playgroud)

第一条规则仅在 mysite.com 上运行,并将所有内容重定向到http://www.mysite.com/. 第二条规则仅在 www.mysite.com 上运行,并将除 之外的所有内容重定向/http://www.mysite.com/。(该.平均值匹配任何字符之一——因为/没有任何其他字符,所以它不会匹配。)