我正在尝试匹配像
这样的网址http://www.example.org/?h=b1c60d1bf7c7119fef9fc726068e1418166.xml
或
?h=b1c60d1bf7c7119fef9fc726068e1418166.jsonp&callback=testing
并像这样重写:
?h=b1c60d1bf7c7119fef9fc726068e1418166&output=true&format=true&data_type=xml
或
?h=b1c60d1bf7c7119fef9fc726068e1418166&output=true&format=true&data_type=jsonp&callback=testing
这是我想出的正则表达式的.htaccess文件。
RewriteEngine On
RewriteBase /
RewriteRule ^/?\?h=([a-z0-9]+)\.(xml|json|jsonp|rss)(\&callback=[a-z_0-9]+)?$ ?h=$1&output=true&format=true&data_type=$2&callback=$3 [L,NC,QSA]
为什么这不匹配的任何想法?我已经在服务器环境和http://htaccess.madewithlove.be/上对此进行了测试,但没有运气。
答案 0 :(得分:0)
RewriteRule
与查询不匹配,只是路径文件/目录名称。
使用RewriteCond %{QUERY_STRING}
来处理查询。