【问题标题】:Redirect from few url's (both www and non-www) to original one从几个网址(www 和非 www)重定向到原始网址
【发布时间】:2012-04-28 07:57:05
【问题描述】:

如何缩短这个表达式?我想要而不是使用 2 行只检查与 mysite.com 不同的任何域,例如mysite.org 或 www.mysite.org 有或没有 www 和重定向。

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^mysite\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.org$ [OR]
RewriteCond %{HTTP_HOST} ^mysite\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.net$

RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]

使用 [OR] 或这样做是否更快

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

附:为什么即使我不使用 [NC] 也能区分大小写?

【问题讨论】:

    标签: apache mod-rewrite redirect


    【解决方案1】:

    您可能想查看canonical hostnames 上的 Apache 文档,您的规则可以表示为否定

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

    而对于没有 [NC] 匹配的规则,它可能取决于浏览器发送给服务器的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多