.htaccess重定向查询字符串

问题描述 投票:0回答:1

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

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

regex .htaccess
1个回答
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]
© www.soinside.com 2019 - 2024. All rights reserved.