1

我的应用程序动态创建子域。

如果只使用子域(没有其他路径):mydomain.mysite.com

我需要子域重新映射/重写(保持相同的 URL,以便对用户隐藏)到以下 urlmydomain.mysite.com/event/mydomain

在传递了其他参数的情况下,我想忽略重写规则。( mydomain.mysite.com/something/else)

我在重定向循环中遇到以下问题

RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*)\.mysite\.com
RewriteRule ^(.*)$ http:// %1.mysite.com/events/%1 [L,NC,QSA]

当我通过其他参数时,它也会重写!

4

1 回答 1

0

如果您有http://作为规则目标的一部分,那么它将自动重定向。您希望它在内部重写,因此删除http://和主机名。您还希望与 URI 匹配,/因为您希望忽略规则:

RewriteEngine on
# you may want this condition, to ignore "www"
RewriteCond %{HTTP_HOST} !^www\.

RewriteCond %{HTTP_HOST} ^(.*)\.mysite\.com
RewriteRule ^/?$ /events/%1 [L]

添加了第一个条件以忽略以 开头的主机www,因此http://www.mysite.com/不会被重写。如果您不在乎,那么只需删除条件即可。您也不需要该QSA标志,因为当您的目标中没有 a 时,这是隐含的?

于 2012-11-29T08:11:44.520 回答