当前位置:web 服务器 > Apache >>

Apache或httpd中url rewrite规则怎样匹配网址中问号后面的参数?

Apache中的url rewrite功能非常有用,
但是现在遇到一个问题,
想知道怎样写httpd的这个rewrite规则能匹配到网址中的get传参的参数呢?
也就是怎样匹配网址里问号后面的参数值呢?

在apache中要匹配网址中问号后面的参数,
需要用到 RewriteCond 配置,
QUERY_STRING变量表示网址中问号后面的get参数字符串。

示例代码如下:
RewriteCond %{QUERY_STRING} ^ad=(.+)$ [NC]
RewriteRule ^.*$ /test_%1 [L,R=301]

上述配置匹配网址中含有参数名 ad,
并在 RewriteRule 中使用参数值,
用百分号 % + 正则结果索引号表示。

上述例子重定向之后的网址中仍然会带上问号后面的所有参数,
如果需要去掉问号后面的参数,
则需要在重写的规则的后面加个问号:
RewriteCond %{QUERY_STRING} ^ad=(.+)$ [NC]
RewriteRule ^.*$ /test_%1? [L,R=301]

Apache
IIS
Nginx
Tomcat
如果你遇到web 服务器难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,