将Rule /category?id=2 重写为/index.php?cat=2

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

我希望 /category?id=2 重定向到 .htaccess 中的 /index?cat=2

我尝试过以下代码

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^category?id=$ /index.php?cat=$1 [L]

但是什么也没发生。我知道我的代码有问题。有人知道我应该改变什么吗?

.htaccess url-rewriting
1个回答
0
投票

重写模块的文档明确指出

RewriteRule
与所请求 URL 的 path 组件相匹配。不针对查询字符串。为了匹配,您可以添加
RewriteCondition
,您还可以从那里捕获字符串并使用“%”符号引用它们:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^/?category$ /index.php?cat=%1 [L]
© www.soinside.com 2019 - 2024. All rights reserved.