301-将博客重定向到WordPress迁移

时间:2018-06-29 作者:nasirs

嗨,我正在尝试将我的博客从Blogger移动到WordPress,我想保持一个简单干净的URL结构,如http://www.example.com/post-name/

在blogger中,我有以下URL结构:

  1. www.example.com/2017/02/post-name.html
  2. www.example.com/2017/02/post-name.html?m=1
  3. www.example.com/2017/02/post-name.html?m=0
我可以将所有此类URL从Blogger重定向到WordPress上的一个干净URL,其结构如下http://www.example.com/post-name/ 使用WordPress的重定向插件。

我使用以下正则表达式

源URL:^/\\d{4}/\\d{2}/(.*).html+.* http://www.example.com/$1/上述设置工作得非常好,但我希望通过编辑.htaccess 文件,此工具有一个选项可以在中导出重定向.htaccess 格式化以在服务器上更新。但导出的重写规则不起作用。

以下是从重定向插件导出的重写:

# Created by Redirection
<IfModule mod_rewrite.c>
RewriteRule ^\\d{4}/\\d{2}/(.*).html+.* http://www.example.com/$1/ [R=301,L]
</IfModule>
# End of Redirection
我应该怎么做,或者我的表达有什么问题吗.htaccess 文件

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

 RewriteRule ^\\d{4}/\\d{2}/(.*).html+.* http://www.example.com/$1/ [R=301,L]
这看起来确实应该“起作用”,尽管有一些事情可以整理,查询字符串(即。m=1m=0) 将保留在URL上。

此外,在测试之前,请确保已清除浏览器缓存,因为浏览器会硬缓存301s。出于这个原因,使用302(临时)重定向进行测试会更容易,并且只有在您确定其正常工作时才更改为301重定向。(提示:在浏览器的对象检查器打开且选中“禁用缓存”选项的情况下进行测试。)

此重定向还需要位于.htaccess 文件,在WordPress前端控制器之前(即# BEGIN WordPress 第节)。

请尝试以下操作:

RewriteRule ^\\d{4}/\\d{2}/(.+)\\.html$ http://www.example.com/$1/? [R=301,L]
尾部+.* 在您的模式上,没有太多意义(虽然它不应该引起问题),因为这只是重复l (共个)html) 1次或多次,然后是任何内容。这个.html 始终是URL路径的结尾(查询字符串不是URL路径的一部分),因此后面应该紧跟$ (锚索末端)。

这个?RewriteRule 替换通过创建一个“空”查询字符串,有效地从目标URL中删除查询字符串。或者,在Apache 2.4+,您可以使用QSD 改为标记(查询字符串放弃)。ie。... http://www.example.com/$1/ [QSD,R=301,L]

UPDATE: 使用……安全吗。。。

好吧,您可以更具体地使用regex,以确保它不匹配“太多”,只匹配您感兴趣的URL。例如,上述指令还将匹配表单的URL:example.com/2017/02/foo/bar/post-name.html, 这将导致(可能无效)重定向到/foo/bar/post-name. 甚至example.com/2017/02/1111/22/post-name.html, 这将导致双重重定向。这可能根本不重要,事实上,这甚至可能是可取的,这取决于你的情况。但是,您可以限制post-name 仅限于单词字符(a-z, A-Z, 0-9_) 通过更改RewriteRule 图案。例如:

RewriteRule ^\\d{4}/\\d{2}/([\\w-]+)\\.html$ http://www.example.com/$1/? [R=301,L]
但除此之外,我看不出这是“不安全的”。

结束

相关推荐

多站点网络仪表板中的ERR_TOO_MANY_REDIRECTS

当我尝试从此打开我的多站点网络仪表板时:-http://domain.com/wp/wp-admin/network/它给了我这样的陈述:-此页面在域中无效。com重定向您的次数太多。尝试清除您的Cookie。ERR\\u TOO\\u MANY\\u重定向[Update] 请参阅上述问题的解决链接:-Redirect loop (only for multisite network admin)