【问题标题】:How create rule in .htaccess to redirect如何在 .htaccess 中创建规则以重定向
【发布时间】:2016-09-06 11:05:18
【问题描述】:

将 CMS 更改为 Wordpress 后出现一些问题。我的旧 url-s 看起来像 http://example.com/news/sport/12123 其中 12123 帖子 ID。现在我的 url-s 看起来像 http://example.com/12/12/2016/post-name。迁移到 WP 后,我将旧帖子 ID 作为自定义字段保存在我的数据库中。现在我需要将通过旧网址访问我网站的所有用户重定向到新网址。为此,我需要在 .htaccess 中添加 301 重定向,如下所示:

Redirect 301 /news/sport/12123 /redirectold.php?oldid=12123

redirectold.php 通过来自 url 的旧 ID 从 DB 新 url 获取。如果我直接打开http://example.com/redirectold.php?oldid=12123 一切正常,但我不知道如何重定向到 /redirectold.php?oldid= 所有旧链接并从旧网址获取旧帖子 ID 并将其放在 /redirectold.php?oldid= 之后.htaccess。

例如如果打开旧链接http://example.com/news/sport/12123 需要通过.htaccess 将其重定向到http://example.com/redirectold.php?oldid=12123

【问题讨论】:

  • 如果我尝试添加到 .htaccess 这一行:Redirect 301 /news/sport/12123 /redirectold.php?oldid=12123 效果很好,如果尝试这样:Redirect 301 /news/sport/([0-9]+) /redirectold.php?oldid=$1 - 没有“找不到页面”
  • 试试RedirectMatch 而不是Redirect ?

标签: php wordpress apache .htaccess


【解决方案1】:

试试这个,

RewriteEngine on
RewriteRule ^/news/sport/([0-9]+)$ /redirectold.php?oldid=$1 [R=301,L]

【讨论】:

  • 感谢您的回答,但“找不到页面”
  • 太棒了!现在它起作用了!我在新闻之前使用RewriteBase / 并删除/,它的工作原理。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
相关资源
最近更新 更多