【问题标题】:301 redirects htaccess configuration301 重定向 htaccess 配置
【发布时间】:2016-04-21 17:26:46
【问题描述】:

我正在为客户开发一个从 Drupal 到 Wordpress 的转换网站,该网站有很多内容。超过 300 个页面和 750 篇博文。

我正在为博客文章寻找 .htaccess 301 重定向,但执行 750 次不同的 301 重定向似乎效率极低。 300 页我已经咬紧牙关了。

我可以利用重写规则来重写以下网址吗?

Redirect 301 http://website.org/blog/YYYY/MM/DD/Post-title 

to http://website.org/blog/Post-title/

日期从 2016 年到 2008 年。

在我为每个 url 投入几个小时之前,我想看看是否有我可以利用的重写条件/规则。

谢谢!

【问题讨论】:

  • 这是正则表达式的完美问题。如果您完全编程,我强烈建议您学习它们。如果您想要一个非常全面的指南,O'Reilly 的《掌握正则表达式》一书非常棒。

标签: php .htaccess redirect mod-rewrite


【解决方案1】:

应该这样做:

RewriteRule ^blog/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)?$ /blog/$4 [R=301,L]

这匹配“4位/2位/2位/whatever”并将此类请求重写为“/blog/whatever”。

【讨论】:

  • 哇。如果这行得通……你就是编程午餐时间的英雄! :) 如果我想在末尾添加一个斜杠,我要做的就是在 $4 之后添加 / 吗?
  • 啊。我犯了一个错误,修复了最初的帖子。 website.org/blog/YYYY/MM/DD/post-titlewebsite.org/blog/post-title :/
  • 从重写规则中删除 /blog 是否正确,因为它已经存在?所以它会是: RewriteRule ^([0-9]{4}/(0-9){2}/(0-9){2}/(.*)?$ /$4 [R=301,l] ?
  • 以斜线开头的它将重定向到 yoursite.com/post-title。如果你只留下$4,你可能会得到一个奇怪的重定向。如果您将 .htaccess 文件放入 /blog 目录,那么它应该可以开箱即用。
  • 好的,所以一个站点可以在不同的目录中有多个.htaccess文件,作为一个wordpress站点,默认生成的wordpress文件包含一些代码。 # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteRule ^([0-9]{4})/([0-9]{2})/([ 0-9]{2})/(.*)?$ /$4 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 。 /index.php [L] # END WordPress 我需要从这里删除什么来达到预期的效果吗?还是按原样好。我怀疑它没问题,但验证会有所帮助
猜你喜欢
  • 2016-03-25
  • 2015-11-04
  • 2018-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-01
  • 2011-01-03
  • 2012-03-10
相关资源
最近更新 更多