开发者

RewriteRule [L] still changing the url

I found myself with this problem, which is driving me a little bit cra开发者_Go百科zy. I use apache's mod_rewrite for pretty URLs and I need to use dynamic subdomains in the site. Everything is great and all the server has de wildcards. I use the next code on my .htacess:

RewriteEngine On

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

The only problem is, even if I use the [L] flag the url of the site change to http://mysite.com/subdomain. What i want is the url to be like http://subdomain.mysite.com

The link mysite.com/subdomain is a dynamic url and is solved with another rule with the following code:

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

Any help would be appreciated


If you specify an external URL (which changing the subdomain does), a header redirect will take place. I don't think you can prevent that. But why not skip that step altogether, and use the second RewriteRule straight away?

I can't test this right now, but something like

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

should work.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜