【问题标题】:htaccess subdomain silent redirecthtaccess 子域静默重定向
【发布时间】:2014-07-17 21:47:06
【问题描述】:

我有每个用户的子域,user1.domain.com 成功指向 domain.com/user1。

我的问题是我该怎么做才能让http://user1.domain.com/admin 静默重定向到http://domain.com/admin

我想将此应用于子域中的所有子目录,因此 user1.domain.com/cart 静默重定向到 domain.com/cart & user1.domain.com/cart/checkout/confirmation -> domain.com/cart /checkout/confirmation 等等。请记住,此目录实际上并不存在于子域中,仅存在于根域中。

我已尝试搜索 Stackoverflow,但找不到特定问题的答案。谢谢!

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    除非浏览器知道它,否则它不是重定向,没有“静默”重定向之类的东西。您有 2 个选项,您可以代表浏览器代理,也可以在内部重写请求如果 user1.domain.comdomain.com 共享相同的文档根目录

    代理:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
    RewriteRule ^(.*)$ http://domain.com/%1/$1 [L,P]
    

    P 标志表示代理。除非您加载了 mod_proxy,否则此规则不会起作用。如果您的所有域都指向同一个文档根目录,那么您可以简单地重写:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
    RewriteRule ^(.*)$ /%1/$1 [L]
    

    【讨论】:

    • 非常感谢!第二个选项工作得很好。给将来查看此内容的任何人的注意事项:实际上不要为这些子域创建文件夹。只需解析 url 并根据子域引用您的数据库。
    猜你喜欢
    • 2017-11-05
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2019-10-13
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多