【问题标题】:mod_rewrite Redirect to specific URL if domain X is used?如果使用域 X,mod_rewrite 重定向到特定 URL?
【发布时间】:2013-02-19 13:11:42
【问题描述】:

我有一个包含两个域的站点。我希望每当访问域 X 时(无论路径是什么...... /foo/bar/、root 或其他),浏览器都应该重定向到特定的 URL。

所以:

domainX.com -> domainX.com
domainY.com -> domainX.com/some/path

以下有点工作,但它只匹配domainY.com,所以www.domainY.comdomainY.com/some/path 不起作用。

RewriteCond %{HTTP_HOST} ^domainY\.com
RewriteRule ^(.*)$ http://domainX\.com/some/path [L]

它必须接受之前有和没有 www 的情况。有什么想法吗?

【问题讨论】:

    标签: apache .htaccess url mod-rewrite redirect


    【解决方案1】:

    你可以为HTTP_HOST扩展正则表达式

    RewriteCond %{HTTP_HOST} ^(?:www\.)?domainY\.com$
    RewriteRule .* http://domainX.com/some/path [L]
    

    这是重写。如果要重定向客户端,必须添加R标志

    RewriteRule .* http://domainX.com/some/path [R,L]
    

    当一切正常时,您可以将R 替换为R=301从不R=301测试。

    【讨论】:

    • 现在 www 也可以使用,但是如果我在域名后面加上一些东西(例如 domainY.com/some/path 它就不起作用。不过这并不重要,我可以没有它。谢谢!
    • @qwerty 这很奇怪,它应该在有或没有额外的 URL 路径的情况下工作。你有额外的规则吗?还是您收到一些错误消息?
    • 我确实有额外的规则。它们在 OP 中,但我把它们删掉了,因为我认为这无关紧要。见这里:pastebin.com/Xh0u1AsA 现在我想了想,我也应该把我的规则放在 中。其他规则会导致它不起作用吗?
    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2017-02-20
    • 2010-12-14
    • 2016-05-18
    • 2011-11-13
    相关资源
    最近更新 更多