htaccess子域静默重定向

时间:2014-07-17 21:47:06

标签: apache .htaccess mod-rewrite

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

我的问题是如何执行此操作,以便http://user1.domain.com/admin将“静音”重定向到http://domain.com/admin

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

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

1 个答案:

答案 0 :(得分: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]