在用 mod_rewrite 重写 URL 后,301 重定向将参数添加到 URL
301 redirect adding param to URL after rewriting URL with mod_rewrite
我正在重写我的 URL,如下所示:
RewriteRule ^/?page/([a-z0-9\-]*)/ /page.php?url= [L]
现在我改变了一个 URL 并想用 301 重定向它:
Redirect 301 /page/example-old/ /page/example-new/
问题:它添加了 URL 参数。结果是:
/page/example-new/?url=example-new
我做错了什么?我想要不添加 URL 参数的重定向。
如果您已经在使用 mod_rewrite,通常最好也使用 mod_rewrite 实现重定向:
RewriteRule ^/?page/example-old/ /page/example-new/ [R=301,L]
RewriteRule ^/?page/([a-z0-9\-]*)/ /page.php?url= [L]
这样第一条规则会阻止第二条规则 运行,因为第一条规则使用 L
(最后一个)标志。
我正在重写我的 URL,如下所示:
RewriteRule ^/?page/([a-z0-9\-]*)/ /page.php?url= [L]
现在我改变了一个 URL 并想用 301 重定向它:
Redirect 301 /page/example-old/ /page/example-new/
问题:它添加了 URL 参数。结果是:
/page/example-new/?url=example-new
我做错了什么?我想要不添加 URL 参数的重定向。
如果您已经在使用 mod_rewrite,通常最好也使用 mod_rewrite 实现重定向:
RewriteRule ^/?page/example-old/ /page/example-new/ [R=301,L]
RewriteRule ^/?page/([a-z0-9\-]*)/ /page.php?url= [L]
这样第一条规则会阻止第二条规则 运行,因为第一条规则使用 L
(最后一个)标志。