我需要将未知的子域名翻译成变量,因此以下内容适用:
http://test.example.com/
→http://www.example.com/?domain=test
http://xyz.example.com/
→http://www.example.com/?domain=xyz
http://www.example.com/
→http://www.example.com/
http://www.example.com/pageA/
→http://www.example.com/pageA/
http://fish.example.com/pageB?somevar=something
→http://www.example.com/pageB?somevar=something&domain=fish
http://www.example.com/pageB?somevar=something
→http://www.example.com/pageB?somevar=something
http://fish.example.com/pageB
→http://www.example.com/pageB?domain=fish
正如您所看到的,我需要做的就是将所有子域替换为www
,并将子域名附加为名为域的get var。
我真的迷失了。
编辑:哦我还希望用户仍然可以在网址中看到子域名,而不是重定向。
答案 0 :(得分:1)
试试这个:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z]+)\.example\.com$
RewriteCond %1 !=www
RewriteRule ^ http://www.example.com%{REQUEST_URI}?domain=%1 [QSA]
答案 1 :(得分:0)
我会用:
RewriteEngine on
RewriteCond %{HTTP_HOST} !=www.example.com
RewriteCond %{HTTP_HOST} ^(www\.|)(.+)\.example\.com$
RewriteRule ^.*$ http://www.example.com/$1?domain=%2 [QSA]
这也会将www.fish.example.com
重写为...?domain=fish
。