Bar*_*ock 5 .htaccess mod-rewrite url-rewriting query-string
几个星期前我已经开始了一个话题.但我现在遇到了一个与旧问题非常相似的新问题:.htaccess重写URL带有问号"?"
我的目标是这个网址:
/mysite/component/users/?view=registration
Run Code Online (Sandbox Code Playgroud)
重写到这个新网址:
mysite/registration.html
Run Code Online (Sandbox Code Playgroud)
我目前.htaccess得到了这段代码:
RewriteBase /mysite
RewriteCond %{QUERY_STRING} ^view=(.*)$
RewriteRule ^component/users/?$ %1.html? [R=301,L]
Run Code Online (Sandbox Code Playgroud)
它工作得非常好.
但后来我注意到这个配置涉及所有以这样开头的URL:
/mysite/component/users/?view=
Run Code Online (Sandbox Code Playgroud)
例如,这个配置也会涉及这样的URL:
/mysite/component/users/?view=remind
Run Code Online (Sandbox Code Playgroud)
这是我不想要的
我只想重写这个URL:
localhost/mysite/component/users/?view=registration
Run Code Online (Sandbox Code Playgroud)
RewriteBase /mysite
RewriteCond %{QUERY_STRING} ^view=(registration)$ [NC]
RewriteRule ^component/users/$ %1.html? [R=301,L]
Run Code Online (Sandbox Code Playgroud)
如果你希望它只适用于registration那时你可以指定一个catchall正则表达式.
另请注意,由于您拥有全局永久重定向,因此您可能需要清除浏览器缓存或使用其他浏览器即时查看更改.