我没有使用regex的经验,我试图在WordPress站点的.htaccess
文件中放置的重定向规则没有效果。
我要重新导向:
https://example.com/example/?person=name
至
https://example.com/example/people/name
从阅读中,我发现我的规则应该是:
RewriteRule \?person=(.*) https://example.com/example/people/$1 [R=301,L]
我错过了什么/做错了什么?
1条答案
按热度按时间c6ubokkw1#
从阅读中,我发现我的规则应该是:
无法使用
RewriteRule
pattern 匹配URL的查询字符串部分。RewriteRule
pattern 仅与请求的URL路径匹配。要匹配查询字符串,需要使用条件并检查QUERY_STRING
服务器变量。例如:
这需要在现有的WordPress指令 * 之前 *。
这与您的问题中所述的URL路径完全匹配,即
/example/
。%1
(与$1
相对)是对最后一个匹配条件的反向引用,即person
URL参数的值,它作为第一个URL参数出现。QSD
(放弃查询字符串)标志(Apache 2.4+)是从目标URL中删除查询字符串所必需的。如果您仍然使用Apache 2.2,则将一个空查询字符串(即,将一个?
)附加到 subsitution 字符串的末尾。