【问题标题】:Redirect old page url after .htaccess url rewriting.htaccess url重写后重定向旧页面url
【发布时间】:2012-06-13 09:04:24
【问题描述】:

我已经用 htaccess 重写了我的 url,现在我想将旧的 url 重定向到新的,但我不知道该怎么做。

这是我使用的重定向规则:

RewriteRule ^page/([^/]*)/$ /page.php?name=$1 [L]

旧网址如下所示:page.php?name=page-name

新的 url 如下所示:/page/page-name/

【问题讨论】:

  • 那怎么了?您遇到了什么问题?

标签: .htaccess mod-rewrite redirect rewrite rule


【解决方案1】:

当您想要使用 GET 参数重定向 url 时,这有点复杂。

这里有一个技巧:

RewriteRule ^page\.php$ %{QUERY_STRING} [C]
RewriteRule name=(.*) /page/$1/? [R=301,L]

说明:

  • 首先,将page.php?name=page-name 重定向到?name=page-name
  • 然后,您使用以下规则询问此结果(带有[C] 标签)
  • 第三,你重定向page-name,用(.*)选择到page/page-name/
  • 最后一招,如果你不放最后一个?,你的查询字符串将被附加到你的结果中,你会得到这样的url:page/page-name/?name=page-name。使用无用的? 擦除旧的 GET 参数。

在这里找到了一些信息:

【讨论】:

  • 我尝试使用您的代码并且重定向有效,但与重写规则一起使用时出现错误:“页面未正确重定向 Firefox 检测到服务器正在重定向请求以永远不会完成的方式为这个地址。”
  • 尝试将规则替换为^name=(.*)$(请注意它在基本测试架构上运行良好)
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 2015-07-28
相关资源
最近更新 更多