【问题标题】:301 redirect adding param to URL after rewriting URL with mod_rewrite使用 mod_rewrite 重写 URL 后,301 重定向将参数添加到 URL
【发布时间】:2022-01-08 17:05:14
【问题描述】:

我正在像这样重写我的网址:

RewriteRule ^/?page/([a-z0-9\-]*)/ /page.php?url=$1 [L]

现在我更改了一个 URL 并想用 301 重定向它:

Redirect 301 /page/example-old/ /page/example-new/

问题:它添加了 URL 参数。结果是:

/page/example-new/?url=example-new

我做错了什么?我想要不添加 URL 参数的重定向。

【问题讨论】:

  • 能否请您提及网址示例,例如:从哪个网址到您要重定向的网址以及在后端您要发送哪些查询字符串/参数?这将清楚地说明您的问题,谢谢。
  • 谢谢。我提到了上面的例子。例如,我想从“/page/old-entry/”重定向到“/page/new-entry/”。结果是“/page/new-entry/?url=new-entry”。不知道为什么会这样!

标签: redirect mod-rewrite


【解决方案1】:

如果您已经在使用 mod_rewrite,通常最好也使用 mod_rewrite 实现 redirecws:

RewriteRule ^/?page/example-old/ /page/example-new/ [R=301,L]
RewriteRule ^/?page/([a-z0-9\-]*)/ /page.php?url=$1 [L]

这样第一条规则会阻止第二条规则运行,因为第一条规则使用L(最后一个)标志。

【讨论】:

    猜你喜欢
    • 2010-11-09
    • 2011-09-01
    • 2012-02-29
    • 1970-01-01
    • 2016-05-11
    • 2011-01-18
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多