1

我需要将未知的子域转换为变量,因此适用以下内容:

  • 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=somethinghttp://www.example.com/pageB?somevar=something&domain=fish

  • http://www.example.com/pageB?somevar=somethinghttp://www.example.com/pageB?somevar=something

  • http://fish.example.com/pageBhttp://www.example.com/pageB?domain=fish

如您所见,我需要做的就是将任何子域替换为www并将子域名附加为名为domain的 get var 。

我真的迷路了。

编辑:哦,我还希望用户仍然在 url 中看到子域,而不是重定向。

4

2 回答 2

2

试试这个:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z]+)\.example\.com$
RewriteCond %1 !=www
RewriteRule ^ http://www.example.com%{REQUEST_URI}?domain=%1 [QSA]
于 2011-01-28T13:34:22.113 回答
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.

于 2011-01-28T13:40:35.263 回答