【问题标题】:IIRF v2.0 - Help with Domain's and RedirectsIIRF v2.0 - 域和重定向帮助
【发布时间】:2010-09-10 19:23:03
【问题描述】:

我有一个主域 - 我们称之为 xyz.com。我还有其他几个二级域名,如abc.com def.com、ghi.com等。这些域名都具有相同的内容。

我正在尝试在 IIRF 中进行 URL 重定向,该重定向将采用任何辅助域,并将其替换为我的主 xyz 域。

这是我得到的最接近的。

RewriteCond  %{HTTP_HOST}  ^(?!(.*)\.xyz\.com)$
RedirectRule ^/(.*)$        http://*1.xyz.com/$1   

问题 #1:如果我导航到 123.abc.com,我会被带到 .xyz.com(我失去了我的子域,我以为我可以用 '*1' 检索它)。

问题 #2:即使我去 www.xyz.com,我也会被重定向到 .xyz.com,这条规则显然应该忽略任何 xyz .com

【问题讨论】:

    标签: regex dns subdomain iirf


    【解决方案1】:

    这应该可以工作

    #not in main.com
    RewriteCond %{HTTP_HOST} !.*main.com [NC]
    #get the subdomain as a backreference to use in the RewriteRule
    RewriteCond %{HTTP_HOST} (.*)[a-z0-9]+\.[a-z]+$ [NC]
    #Rewrite the new URL
    RewriteRule ^(.*)$ http://%1main.com/$1 [NC,QSA,L]
    

    虽然我不是最优秀的正则表达式大师,所以可能有一些边界情况会提供意想不到的结果

    【讨论】:

    • 我真的要在这里重定向。我可以用 RedirectRule 代替 RewriteRule 吗?
    • 哦,我的错,我将 RedirectRule 视为 RewriteRule。在任何情况下,将R 添加到 RewriteRule 末尾的标志中以使用重定向。您甚至可以指定 HTTP 重定向代码,例如。 R=301
    • 正则表达式不太正确。我有 ”?!”意思是“不”。现在我对你的代码没有任何影响......
    • 为您的努力投了赞成票。能够从开发人员那里得到直接的答案。 iirf.codeplex.com/Thread/View.aspx?ThreadId=226802
    【解决方案2】:

    我花了一个星期,但我成功了。

    ##### handles 3-part domains like "xxx.yyy.com"
        RewriteCond %{HTTP_HOST} ^(.*)\.(?!xyz).*\.com$        
        RedirectRule ^/(.*)$ http://*1.xyz.com/$1 [R=301]
    

    ##### handles 2-part domains like "yyy.com"      
        RewriteCond %{HTTP_HOST} ^(?!xyz).*\.com$        
        RedirectRule ^/(.*)$ http://xyz.com/$1 [R=301]
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      相关资源
      最近更新 更多