【问题标题】:Rules for redirecting multiple links重定向多个链接的规则
【发布时间】:2011-10-09 19:58:08
【问题描述】:

您好,我目前正在迁移一个网站。我有大约 400 个链接需要重定向。我知道如何在 htaccess 中为每个人设置重定向,但希望设置一个规则。我想要

www.example.com/2011/10/the-news-post

重定向到

www.example.com/home/post/the-news-post

可以这样做吗?如果是这样,代码是什么样的?

谢谢,

格雷戈

【问题讨论】:

  • 您是否有特定原因要使用“_”进行重定向?我认为使用“-”对您的 SEO 会更好
  • 确实 -- 使用 keep using - -- 推荐使用 _
  • 是的,我现在正在使用连字符 - 是一个疏忽!塔。

标签: .htaccess url redirect


【解决方案1】:

为了保留连字符:

RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ [R=302,L]

为了将连字符改为下划线(我也不推荐这样做):

RewriteRule ^([0-9]{4}/[0-9]{1,2}/[^/]+)-([^/]+)$ $1_$2 [N]
RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ home/$1 [R=302,L]

简要说明: 第一条规则匹配任何带有日/月的 URL,后跟包含连字符的文章。它替换连字符,然后重新运行所有重写规则。一旦没有连字符,它将通过第二条规则,将 URL 重写为 home/articlename。

演示:http://cerebraldonkey.com/mod_rewrite2/2011/5/some-article-containing-several-hyphens

【讨论】:

  • 谢谢。我现在已经用连字符替换了所有 URL 上的下划线(不知道为什么我认为使用下划线是个好主意...... DOH!)。所以完成了我所需要的就是:RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ home/post/$1 [R=302, L] ?
猜你喜欢
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 2022-11-12
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多