如何在不更改输入的URL的情况下使用.htaccess重定向?

时间:2015-04-01 03:18:33

标签: .htaccess redirect rewrite subdomain wildcard

目前我[any_name].example.com重定向到example.com/?id=[any_name]

这是我的.htaccess代码:

RewriteCond %{HTTP_HOST} !^www\.example.com
RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^([^/]*)$ http://example.com/?id=%1 [L,R=301]

如何更改我的.htaccess,以便foo.example.com重定向到example.com/?id=foo,但仍会在浏览器的地址栏中显示foo.example.com

1 个答案:

答案 0 :(得分:1)

当您使用R标志时,或者如果您包含协议/域(例如http://example.com),mod_rewrite将重定向浏览器而不是内部重写请求。重定向浏览器会导致浏览器加载新的URL,用于更改地址栏中的URL。您希望删除这些URL,以便:

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_HOST} !^www\.example.com
RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^([^/]*)$ /?id=%1 [L,QSA]