我试图重写规则,但我无法找到正确的表达方式。我一直在寻找不同类型的正则表达式验证器,他们说这个表达式有效。
我的.htaccess
如下所示:
Options +FollowSymlinks -MultiViews -Indexes
DirectoryIndex index.php index.html index.htm
RewriteEngine on
RewriteBase /
RewriteRule ^index\.php(.+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=(.*)$ /$3+$5+$7 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
示例URI为:http://www.example.com/index.php?r=site/action¶m1=value1
。
答案 0 :(得分:1)
您无法在重写规则中与查询字符串匹配,您需要使用%{QUERY_STRING}
或%{THE_REQUEST}
变量。
虽然我们完全不清楚你要做什么,但试试这样的事情:
Options +FollowSymlinks -MultiViews -Indexes
DirectoryIndex index.php index.html index.htm
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} \ /+index\.php\?(.+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=(.*)
RewriteRule ^ /%3+%5+%7 [L]