不会健身的程序员
不是好作家

网站url变更

          用过wordpress的都知道,wordpress支持在后台设置网站链接的url格式,而一个网站都是以URL形式对外提供入口,url的好坏将影响,用户体验,网站维护、管理、SEO等等问题。如果没有一些特殊的原因(例如死链,404错误,网站重构、优化)等原因,没有人愿意改变网站的内容的url地址。因为这会影响用户体验,搜索引擎降位等。但是如果真有需求,我们改怎么做呢?小林折腾了一晚之后,把小林修改的方法告诉大家。

关于链接需要注意的

一、不要让日期出现在wordpress固定链接里面

这基于两个方面的考虑。一是如果数字出现在固定链接里面,等于提醒搜索引擎,这是很旧的内容了,没必要再爬一遍了。另外一个原因是,假如你要修改文章的日期重新发布的话,链接地址就变了,也就是意味着你的反向链接,PR 等等都没有了。

二、不要让分类的链接出现在固定链接里面

这一点是很多人都会忽略的地方。让分类出现在固定链接里面有两个缺陷:一是一篇文章如果选择了多个分类的话,则会出现多个链接地址,这很容易造成因为重复内容而被搜索引擎惩罚;二是有可能会造成关键词堆砌而被搜索引擎惩罚。

三、链接不要过深

这一点经常看到。很多wordpress 用户的固定链接是年/月/日/分类名/文章名。这种过于深的固定链接对搜索引擎是非常不友好的。

四、不要让中文字符出现在固定链接里面

虽然现在的搜索引擎已经能识别URL地址里面的中文字符,但无论是从美观上,还是从wordpress 优化的角度来看,都是非常差的。

五、使用伪静态(HTML)链接

众所周知,相对于动态链接搜索引擎更喜欢静态的链接。WordPress默认的链接都是动态的,我们可以利用WordPress的URL重写功能来轻松实现链接的静态化。只需要在“自定义结构”后加上“.htm”就可以搞定了.如/%postname%.html

链接结构的选择

%postname%/和/%post_id%都是很不错的url唯一的形式,然后你可以按照自己的喜好添加一些东西比如:/%postname%.html或者/%post_id%.html或者/p/%post_id%.html

postname

原本小林的URl格式/articles/%postname%.html格式的,因为博客不支持中文url所以小林用window live writer写好一篇文章,然后只能发布文章成草稿状态,再到wordpress控制台去给文章起个英文别名,才敢发布,这时候发布的文章就是英文别名.html形式的,因为小林是个懒人,觉得这个很麻烦,经过一翻思考,决定要更换url结构,改成懒人模式/p/%post_id%.html格式的

post_id

这种方式和postname其实没什么两样,对于seo可能也差不多,唯一的好处就是不需要给文章起别名,也不需要修改让博客支持中文路径,小林最终修改的格式是/p/%post_id%.html。细心的观众也发现了,为什么小林都要在路径前面加个前缀呢?(例如/p/或者/articles/)1、小林主要是怕以后要是生成了真正的静态文件存在服务器,这样服务器根目录会非常多文件。2、多一个签字方便url重写和过滤

下面正题来了,下面讲一下小林是如何快速更换url的(以wordpress为例)

更换URL

步骤一:生成网站地图(sitemap.xml)

很多插件都支持生成站点地图,这里小林推荐小林使用的Google XML Sitemaps

步骤二:复制生成的网站地图到excel上

删除多余的列,只留下URL那一列(直接有选择性的复制是可以一次性把所有url复制到excel上的),为了后面和新的url结构的url进行一一映射,这样我们就能做301网站重定向

步骤三:修改新的url结构

进到wordpress >> 设置 >> 固定链接 >> 自定义结构 >> /p/%post_id%.html

步骤四:获取网站所有新的url

重复步骤一、步骤二把新的URL复制到excel里和旧的url进行映射

步骤五:安装插件

经过小林网上多番寻觅, 发现Redirection还不错,支持非常多功能,太多了小林也用不到,随便说一下:

1、所有的404错误反问都会有日志

2、支持404错误301重定向

步骤六:合成.htaccess文件

我们在之前excel中第一列是旧的url,第二列是新的url,他们基本是一一对应的,因为生成网站地图(sitemap.xml)的时候都是按文章发布时间排的,这时候我们在第三列全部填上[L,R=301],然后在第一列之前再插入一列,值是RewriteRule因为我们要模拟生成.htaccess文件,这样可以导入Redirection。修改完excel之后把excel的内容复制到一个新的文件,文件名随便。

文件格式如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
    //去掉这个注释,这里是excel里面的内容复制到这里
</IfModule>

下面是小林合成的文件,仅供参考

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteRule  articles/load-and-run-javascript.html    /p/1156.html    [L,R=301]
RewriteRule  articles/sex-ways-dealing-with-spam.html    /p/1154.html    [L,R=301]
RewriteRule  articles/weblogic-unable-start.html    /p/1145.html    [L,R=301]
RewriteRule  articles/site-ash-css-code.html    /p/1135.html    [L,R=301]
RewriteRule  articles/site-404-public-welfare.html    /p/1132.html    [L,R=301]
RewriteRule  articles/use-headjs-async-loading-javascript.html    /p/1129.html    [L,R=301]
RewriteRule  articles/life-like-game.html    /p/1094.html    [L,R=301]
RewriteRule  articles/no-image-blockquote-css.html    /p/1083.html    [L,R=301]
RewriteRule  articles/wordpress-no-plugin-history-view.html    /p/1056.html    [L,R=301]
RewriteRule  articles/how-to-speed-up-web-access.html    /p/1065.html    [L,R=301]
RewriteRule  articles/struts1-use-bean-write-tag-throw-error.html    /p/1052.html    [L,R=301]
RewriteRule  articles/wordpress-no-plugin-related-articles.html    /p/1048.html    [L,R=301]
RewriteRule  articles/blog-sidebar-follow-with-scrolling.html    /p/1043.html    [L,R=301]
RewriteRule  articles/wordpress-clean-head.html    /p/1035.html    [L,R=301]
RewriteRule  articles/wordpress-url-rewrite.html    /p/1030.html    [L,R=301]
RewriteRule  articles/push-notification-one-about-comet.html    /p/1013.html    [L,R=301]
RewriteRule  articles/wordpress-how-to-store-images.html    /p/1026.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-optimize-two-open-gzip.html    /p/997.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-optimize-one-foreword.html    /p/993.html    [L,R=301]
RewriteRule  articles/wordpress-no-plugin-pagenavi.html    /p/986.html    [L,R=301]
RewriteRule  articles/wordpress-no-plugin-seo-title-keywords-description.html    /p/983.html    [L,R=301]
RewriteRule  articles/cache-and-update-the-css-and-js.html    /p/945.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-twelve-page.html    /p/941.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-eleven-comments.html    /p/939.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-ten-single.html    /p/937.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-nine-index.html    /p/931.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-eight-sidebar.html    /p/929.html    [L,R=301]
RewriteRule  articles/eclipse-use-egit-push-github.html    /p/876.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-seven-footer.html    /p/924.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-sex-description-keywords.html    /p/921.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-five-header.html    /p/907.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-four-started-making.html    /p/901.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-three-html-static-template-production.html    /p/891.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-two-file-structure.html    /p/887.html    [L,R=301]
RewriteRule  articles/head-first-wordpress-theme-one-foreword.html    /p/881.html    [L,R=301]
RewriteRule  articles/eclipse-setup-wordpress-test-environment.html    /p/878.html    [L,R=301]
RewriteRule  articles/eclipse-install-plugin.html    /p/874.html    [L,R=301]
RewriteRule  articles/road-to-architect-two-apache-tomcat-https-use.html    /p/254.html    [L,R=301]
RewriteRule  articles/road-to-architect-one-appache-integrated-tomcat.html    /p/162.html    [L,R=301]
RewriteRule  articles/java-content-repository-api-intro.html    /p/287.html    [L,R=301]
RewriteRule  articles/apache-jackrabbit-sample.html    /p/310.html    [L,R=301]
RewriteRule  articles/head-first-jackrabbit-1.html    /p/347.html    [L,R=301]
RewriteRule  articles/codding-arithmetic-sha1.html    /p/357.html    [L,R=301]
RewriteRule  articles/coding-arithmetic-md5.html    /p/361.html    [L,R=301]
RewriteRule  articles/eclipse-wordpress-install-php-env.html    /p/489.html    [L,R=301]
RewriteRule  articles/mysql-one-login-database-table-operate.html    /p/494.html    [L,R=301]
RewriteRule  articles/vmware-workstation-install-and-uninstall.html    /p/540.html    [L,R=301]
RewriteRule  articles/vmware-workstation-network-setting.html    /p/556.html    [L,R=301]
RewriteRule  articles/newv-mware-workstation.html    /p/586.html    [L,R=301]
RewriteRule  articles/centos-linux-install.html    /p/588.html    [L,R=301]
RewriteRule  articles/useful-connect-linux-tool.html    /p/589.html    [L,R=301]
RewriteRule  articles/cvs-install-in-linux.html    /p/710.html    [L,R=301]
RewriteRule  articles/oracle-11g-install.html    /p/740.html    [L,R=301]
RewriteRule  articles/more-new-features-of-jdk1-5.html    /p/743.html    [L,R=301]
RewriteRule  articles/dont-mess-with-the-programmer.html    /p/762.html    [L,R=301]
RewriteRule  articles/sql-injection.html    /p/768.html    [L,R=301]
RewriteRule  articles/tsar-taobao-system-monitoring-tools.html    /p/772.html    [L,R=301]
RewriteRule  articles/git-one-git-start.html    /p/773.html    [L,R=301]
RewriteRule  articles/git-two-git-base.html    /p/774.html    [L,R=301]
RewriteRule  articles/git-three-git-branch.html    /p/775.html    [L,R=301]
RewriteRule  articles/git-four-server-git.html    /p/777.html    [L,R=301]
RewriteRule  articles/git-five-distributed-git.html    /p/778.html    [L,R=301]
RewriteRule  articles/git-six-git-tool.html    /p/779.html    [L,R=301]
RewriteRule  articles/git-seven-rounding-custom-git.html    /p/780.html    [L,R=301]
RewriteRule  articles/git-eight-git-and-other-systems.html    /p/781.html    [L,R=301]
RewriteRule  articles/git-nine-git-internal-principle.html    /p/782.html    [L,R=301]
RewriteRule  articles/jquery-dom-conversion.html    /p/785.html    [L,R=301]
RewriteRule  articles/the-online-pfif-tracing-agreement.html    /p/805.html    [L,R=301]
RewriteRule  articles/12306-site-performance-technology.html    /p/807.html    [L,R=301]
RewriteRule  articles/mysql-user-manage.html    /p/809.html    [L,R=301]
RewriteRule  articles/msyql-open-the-remote-link.html    /p/811.html    [L,R=301]
RewriteRule  articles/need-to-know-the-things-in-web-development.html    /p/812.html    [L,R=301]
RewriteRule  articles/spring-1x-aop-one-introduction.html    /p/813.html    [L,R=301]
RewriteRule  articles/was%e5%90%af%e5%8a%a8%e5%ba%94%e7%94%a8%e8%b6%85%e6%97%b6%ef%bc%8c%e7%ba%bf%e7%a8%8b%e6%8c%82%e8%b5%b7.html    /p/324.html    [L,R=301]
</IfModule>

还要去掉第一个url前面的/,直接用文本工具替换就可以,RewriteRule   /articles替换成 RewriteRule articles所有/都没了

当然不用插件的朋友到这里也可以帮你生成一份不错的.htaccess文件了,也无需看步骤七了

步骤七:导入.htaccess

在步骤五安装完Redirection插件并激活后我们就可以导入了

wordpress管理后台 >> 工具 >> 转向(Redirection)>> 选项 >>导入 >>选择文件

其他404错误链接的重定向

上面的方法基本上完成了文章url的301重定向,但是我们还有一些更改链接之后无法访问的链接,也需要重定向,要知道哪些无法访问,用站长工具死链接查询进行查看、或者进Redirection管理控制台,有个历史记录,可以看哪些无法访问的链接被谁从哪个ip点了、或者进google webmasters查看抓去错误的链接:

image

有了这些链接做基础,就可以到Redirection进行配置了

下面小林提供一些通用的正则匹配的选项(需要勾上正则匹配选项)

/index.php/%post_id%  301到 /p/%post_id%.html

​/index.php​/([0-9]+)   映射到 /p/$1.html

/index.php/category/  301到 /p/category/

/index.php/category/(.*)  /p/category/$1

/index.php/tag/ 301到 /p/tag/

/index.php/tag/(.*) /p/tag/$1

最后:大家可以试一下效果

https://linjunlong.com/articles/load-and-run-javascript.html

赞(0)
转载请注明出处:林俊龙博客 » 网站url变更

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

年年岁岁花相识,岁岁年年人不同

给我留言网站地图

谢主隆恩

支付宝扫一扫打赏

微信扫一扫打赏