Mat*_*att 3 php apache .htaccess mod-rewrite
我想使用mod_rewrite将参数附加到查询字符串的末尾.我知道我可以使用[QSA]标志来做到这一点.
但是,如果查询字符串中不存在参数,我希望仅附加参数.所以,如果查询字符串是:
http://www.mysite.com/script.php?colour=red&size=large
Run Code Online (Sandbox Code Playgroud)
我想将上面的URL重定向到
http://www.mysite.com/script.php?colour=red&size=large&weight=heavy
Run Code Online (Sandbox Code Playgroud)
凡weight=heavy被附加到查询字符串的结尾仅当此特定参数是不存在摆在首位!如果特定参数已在URL中,则不需要重定向.
任何人都可以建议我的.htacess文件中的代码可以执行此操作吗?
编辑:测试和修改它,现在它适用于我
我假设你想要在没有重量的情况下添加默认的权重参数:
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} !weight=
RewriteRule ^script.php script.php?weight=heavy [R,L,QSA]
Run Code Online (Sandbox Code Playgroud)
这与@coreyward所回答的基本相同,但更具体一点.(R标志,使变化可见,重量参数不必很重.)
希望这可以帮助!
这是一件非常奇怪的事情.就好像你正在为你的系统设置一个默认值,这是一个非常标准的事情.问题是在你的VHost定义或.htaccess文件中设置默认值是不可维护和笨拙的.
我建议不要这样做,但这是一种快速而肮脏的方式来做你想要的:
RewriteCond %{QUERY_STRING} !weight=heavy
RewriteRule /script.php /script.php?weight=heavy [QSA]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3763 次 |
| 最近记录: |