.htaccess重定向查询字符串

时间:2014-07-15 18:33:35

标签: regex .htaccess

这很难搜索,我找到了其他工作的例子,但基本上我有一个网址:

site.com/?page=test&id=3

我想重写为:site.com/test:3

'test'是页面,3是id。

对于相等的值我有以下匹配:

RewriteCond %{QUERY_STRING} ^(\w+)=(\w+)$
RewriteRule ^/ /%1:%2?

但这只适用于键和值,我可以用什么正则表达式来选择键,%1和%2?

谢谢,

我的第二次尝试: (我只需要index.php)

RewriteCond %{QUERY_STRING} ^page=(\w+)&id=([0-9]*)$
RewriteRule ^index\.php$ /%1:%2**?** [R=302,L]

但是现在我发生了404错误:index.php / details:1

1 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On

RewriteCond %{THE_REQUEST} \?test=([^\s&]+)&test2=([^\s&]+) [NC]
RewriteRule ^/?$ /%1:%2? [R=302,L,NE]

RewriteRule ^([^:]+):([^/]+)/?$ /?test=$1&test2=$2 [L,QSA]