【问题标题】:Redirecting main site, except subdomain重定向主站点,子域除外
【发布时间】:2019-04-17 02:42:07
【问题描述】:

在决定发布之前,我进行了多次搜索,但均未成功。

我有一个主站点,例如 https://mainsite.com 和一个子域,例如 https://subdomain.mainsite.com

挑战是,我只想将主站点重定向到 https://mainsite.com/mysite 而不是子域。

我试过了:

RedirectMatch ^https://mainsite\.com https://mainsite.com/mysite

如果我输入https://mainsite.com,这不会做任何事情

最初,我有这个,它在主站点上运行良好:

RedirectMatch ^/$ /mysite
RedirectMatch /mysite/ /mysite

但是当我拥有子域时,它也将/mysite 添加到子域中,这不是我想要的。

我想通过Redirectmatch 实现这一目标

感谢您的帮助。

【问题讨论】:

    标签: apache .htaccess mod-alias


    【解决方案1】:

    你可以使用 mod-rewrite

    RewriteEngine on
    
    #if http host not sub.domain.com
    RewriteCond %{HTTP_HOST} !sub\.domain\.com
    redirect / to /mysite
    RewriteRule ^/?$  /mysite [L,R]
    

    在 apache 2.4 上,您可以将 RedirectMatchif 条件括起来以检查主机标头,类似以下内容应该适用于 Apache 2.4 或更高版本

     <If "%{HTTP_HOST} == 'example.com'">
    RedirectMatch ^/$ /mysite/
    </If>
    

    如果主机是example.com,这会将/ 重定向到http://example.com/mysite

    【讨论】:

    • 这会导致与其他 rewritecond 发生冲突。我想用redirectmatch 写这个。感谢您的帮助。
    • hmm...获取带有 if 条件的内部服务器错误。
    • 我的错误,错过了结尾 If 中的“>”。问题解决了。谢谢你 Starkeen!
    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 2013-09-24
    • 1970-01-01
    • 2021-11-03
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多