【问题标题】:.htaccess mod_rewrite stop redirecting from sub domain to main domain.htaccess mod_rewrite 停止从子域重定向到主域
【发布时间】:2016-04-12 11:22:40
【问题描述】:

这是我当前的 .htaccess 文件代码

RewriteEngine on
RewriteBase   /xml-sitemaps/enternal-generator
RewriteRule ^sitemap.xml$ sitemap.php [L]
RewriteRule   ^sitemap-(.*?)-(.*?)\.xml$      sitemap.php?type=$1&page=$2 [L]

当我打开网址http://heartslovefree.com/xml-sitemaps/enternal-generator/sitemap.xml 时,它工作正常。

但是当我使用我的子域打开站点时,它实际上指向同一目录http://zh-cn.heartslovefree.com/xml-sitemaps/enternal-generator/sitemap.xml,它会将我重定向到主域。

如何停止重定向?如果我删除 .htaccess 文件重定向停止但我的 url 重写 sitemap.xml 到 sitemap.php 也消失了。

【问题讨论】:

    标签: php apache .htaccess redirect mod-rewrite


    【解决方案1】:

    您可以使用 RewriteCondition 从规则中排除子域,尝试:

        RewriteEngine on
        RewriteBase   /xml-sitemaps/enternal-generator
    RewriteCond %{HTTP_HOST} !^sub\.domain\.com$
        RewriteRule ^sitemap.xml$ sitemap.php [L]
    RewriteCond %{HTTP_HOST} !^sub\.domain\.com$
        RewriteRule   ^sitemap-(.*?)-(.*?)\.xml$      sitemap.php?type=$1&page=$2 [L]
    

    【讨论】:

    • 您好,感谢您的回复。我已将代码编写为RewriteCond %{HTTP_HOST} !^zh-cn\.heartslovefree\.com$,但仍然无法正常工作。现在我只是硬编码了一个子域 [zh-cn]。但我们需要设置规则,使其适用于所有子域。我们有 82 个子域
    • 另外@starkeen 我不想从重写规则中排除子域。唯一的问题是当前子域会自动重定向到主域。
    猜你喜欢
    • 2016-07-06
    • 1970-01-01
    • 2015-06-05
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多