RewriteRule [L]仍在更改网址

时间:2011-08-30 18:27:34

标签: .htaccess mod-rewrite redirect

我发现自己遇到了这个问题,这让我有点疯狂。我使用apache的mod_rewrite用于漂亮的URL,我需要在站点中使用动态子域。一切都很棒,所有的服务器都有通配符。我在.htacess上使用下一个代码:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.mysite.com
RewriteCond %{HTTP_HOST} ([^.]+).mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/%1 [L]

唯一的问题是,即使我使用[L]标志,网站的网址也会更改为http://mysite.com/subdomain。我想要的是网址如http://subdomain.mysite.com

链接mysite.com/subdomain是动态网址,使用以下代码解决另一条规则:

RewriteRule ^([A-Za-z]+)$ filter.php?type=subdomain&subdomain=$1

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

如果您指定外部URL(更改子域名),则会发生标题重定向。我认为你不能阻止这种情况。但为什么不完全跳过这一步,直接使用第二个RewriteRule?

我现在无法测试,但是

RewriteCond %{HTTP_HOST} !^www.mysite.com
RewriteCond %{HTTP_HOST} ([^.]+).mysite.com [NC] 
RewriteRule ^(.*)$ filter.php?type=subdomain&subdomain=$1

应该有用。