目前我[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
?
答案 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]