子域作为mod_rewrite中的变量

时间:2009-09-28 19:43:32

标签: .htaccess mod-rewrite

我正在尝试基于子域进行mod-rewrite。如何获取子域并将其附加到我的新域的末尾?

示例:

RewriteCond %{HTTP_HOST} ^users\.example\.com$
RewriteRule ^(.*)$    http://www.example.com/?subdomain=[variable for sub]     [L]

如何将'用户'变为[变量为sub]?

2 个答案:

答案 0 :(得分:5)

上一个RewriteCond的匹配项存储为%N,因此您可以执行此操作:

RewriteCond %{HTTP_HOST} ^(users)\.example\.com$
RewriteRule ^(.*)$    http://www.example.com/?subdomain=%1 [L]

答案 1 :(得分:0)

Greg的答案只有一个子域名(用户),我需要一个WildCard重写规则(所有子域名),所以我使用了以下内容:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^([\w\d]+)\.example\.com$
RewriteRule ^(.*)$ http://example.com/?subdomain=%1&path=$1 [NC,L,QSA]

或作为反向代理:

RewriteCond %{HTTP_HOST} ^([\w\d]+)\.example\.com$
RewriteRule ^(.*)$ http://%1.backendserver.com:3001/$1 [L,P,QSA]
相关问题