学习永不停止
我们一起努力吧!

wordpress文章链接301重定失效,WP Super Cache惹的祸?

阳江鼎阳抄数设计交流群

打算将不带www的域名全部301重定向到www的地址,笔者并非是第一次进行这种操作,所以并不将其当成难事来处理。找来一组代码,将其加入根目录中的index.php文件的最前面,测试发现,301重定向并没有生效!此法不通,再另想办法。于是找另一组代码加入wp-blog-header.php,结果再一次定向失败!最好只好往.htaccess代码中加入:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^Jdks100.com$ [NC]                                   
RewriteRule ^(.*)$ http://www.Jdks100.com/$1 [L,R=301]

保存代码后,刷新网页,依然存在问题:http://Jdks1000.com/转到http://www.Jdks100.com/是正常的,但是http://xxxx.com/211.html这样的文章链接却转不到htt://www.xxxx.com/211.html。

奇怪,上述可是百试无一失效的301重定向大法呀!怎么今天就失效了呢?!这时突然想起前几天用七牛云存储CDN加速所安装的WP Super Cache,难道真的是它所引起的吗?WP Super Cache有着静态页面的功能,一定会在.htaccess里面留下什么,刚才加入忘记认真看了,只是随意将代码往中间一放,这次打开认真一看,.htaccess中最前面果然有一组这样的代码,

# BEGIN WPSuperCache
# END WPSuperCache

本人最初放置301重定向代码形式:

# BEGIN WPSuperCache
# END WPSuperCache

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^Jdks100.com$ [NC]                                   
RewriteRule ^(.*)$ http://www.Jdks100.com/$1 [L,R=301]

# END WordPress

于是将301重定向代码放到最前面,变成:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^Jdks100.com$ [NC]                                   
RewriteRule ^(.*)$ http://www.Jdks100.com/$1 [L,R=301]

# BEGIN WPSuperCache
# END WPSuperCache

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

刷新网页后,之前的错误修复,wordpress网站里面所有的链接均可进行正常的301永久重定向了。

不过,仍然要遗憾地告诉各位,只要启用WP Super Cache进行CDN加速,网上那种将代码加入到index.hph和wp-blog-header.php文件中的方法就会失效。就个人的测试经验来看,就只有在.htaccess中加入代码并将其放置在最前面,301永久重定向才能生效。

未经允许不得转载:http://jdks100.com/风语守望_博客 » wordpress文章链接301重定失效,WP Super Cache惹的祸?


分享到:更多 ()
关注“公众平台”:     学习交流QQ群(185619299):

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 9 + 6 = ?

风语守望_博客,共同学习,一起成长!

网站首页联系我们
防复制