几个星期前我已经开始了一个话题。 但我现在遇到了一个与旧问题非常相似的新问题:.htaccess rewrite URL with a question mark "?"
我的目标是这个网址:
/mysite/component/users/?view=registration
重写为这个新网址:
mysite/registration.html
我当前的.htaccess
获得了此代码:
RewriteBase /mysite
RewriteCond %{QUERY_STRING} ^view=(.*)$
RewriteRule ^component/users/?$ %1.html? [R=301,L]
它工作得很好。
但后来我注意到这个配置涉及所有以这样开头的URL:
/mysite/component/users/?view=
例如,此配置还涉及如下URL:
/mysite/component/users/?view=remind
这是我不想要的
我只想重写此网址:
localhost/mysite/component/users/?view=registration
答案 0 :(得分:5)
RewriteBase /mysite
RewriteCond %{QUERY_STRING} ^view=(registration)$ [NC]
RewriteRule ^component/users/$ %1.html? [R=301,L]
如果您希望它只适用于registration
,那么您可以指定一个catchall正则表达式。
另请注意,由于您使用了全局永久重定向,因此您可能需要清除浏览器缓存或使用其他浏览器即时查看更改。