我想使用将带有查询字符串的URL重定向到另一个查询字符串。htaccess
From:https://example.com/?smp=123456
(=后任意数字)
收件人:https://example.com/?p=123456
(与发件人地址相同)
我试着跟着但没用。
RewriteEngine on
RewriteCond %{QUERY_STRING} ^/?smp=([0-9]+)$ [NC]
RewriteRule ^$ https://www.example.com/?p=$ [R=301,L]
1条答案
按热度按时间q8l4jmvw1#
这里的主要问题是,您没有使用从前面的 condition(
RewriteCond
指令)中捕获的URL参数值。%1
反向引用保存此值。substitution 字符串末尾的$
将被视为文字$
。还有...
/
开头,所以正则表达式中的/?
部分(可选斜杠)是多余的。www.example.com
,但是你的示例使用了example.com
(域顶点)。如果你只是想重定向到相同的主机名(和 scheme),那么scheme+主机名可以省略。然而,为了最大限度地减少规范重定向,那么它应该留下来。[0-9]
可以缩短为\d
。请尝试以下操作:
这将需要接近根
.htaccess
文件的顶部。