【问题标题】:Redirect subdomain to main domain except one url将子域重定向到除一个 url 之外的主域
【发布时间】:2012-08-16 13:12:55
【问题描述】:

你好,我有一个主域如下

主域:http://www.sample.com/

子域:http://dev.sample.com/

现在如果有人访问http://dev.sample.com/ 需要重定向到http://www.sample.com/ 所以我在我的子域中添加了以下代码,效果很好

RewriteCond %{HTTP_HOST} !www.sample.com.com$ [NC]

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

但如果有子域访问以下网址 http://dev.sample.com/data 然后 它不应该重定向到主域。它应该保留在该子域页面上。有人知道吗?

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    试试这些规则:

    RewriteCond %{HTTP_HOST} ^dev\.sample\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/?data
    RewriteRule ^(.*)$ http://www.sample.com/$1 [L,QSA,R=301]
    

    【讨论】:

      【解决方案2】:

      试试这个:

      RewriteCond %{HTTP_HOST} !www\.sample\.com$ [NC]
      RewriteCond %{REQUEST_URI} !^/data [NC]
      RewriteRule ^(.*)$ http://www.sample.com/$1 [L,R=301]
      

      但是,这将阻止所有以 /data 开头的 URI 的 URL。因此,如果您有http://blog.sample.com/data,它也将允许它在不重写的情况下解决。如果这是一个问题,你可以变得更复杂......在这条规则之后添加这个以捕获所有非开发子域:

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

      现在,如果不满足第一个条件集,则第一个规则将不会运行,因此请检查以确保您仅通过 /data 为 dev 和 www up 提供服务。

      【讨论】:

      • 不错的一个! ! !像魅力一样工作:)
      猜你喜欢
      • 2021-11-03
      • 2016-09-16
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2012-12-29
      • 2015-02-07
      相关资源
      最近更新 更多