wordpress搏客伪静态固定链接设置失败的解决办法-阿里云开发者社区

开发者社区> 人工智能> 正文

wordpress搏客伪静态固定链接设置失败的解决办法

简介: 说句不怕大家笑话的话,做了四五年的网站了却从来不会设置网站的伪静态链接,一般都是程序自带的。即使是动态的链接我也不在乎,在乎又有什么办法呢,不会呀。今天我用一天的时间来研究wordpress设置伪静态链接的方法,没想到研究了一天,晚上的时间终于研究好了,所以才想写篇文章,希望能帮助到和比尔云遇到一样...

说句不怕大家笑话的话,做了四五年的网站了却从来不会设置网站的伪静态链接,一般都是程序自带的。即使是动态的链接我也不在乎,在乎又有什么办法呢,不会呀。今天我用一天的时间来研究wordpress设置伪静态链接的方法,没想到研究了一天,晚上的时间终于研究好了,所以才想写篇文章,希望能帮助到和比尔云遇到一样问题的朋友,好了,下面进入今天的主题。

第一个,wordpress固定链接设置的方法

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

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

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

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

3、链接不要过深

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

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

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

wordpress固定链接设置的一些参数:

  1. %year%:基于文章发布的年份,比如2010;
  2. %monthnum%:基于文章发布的月份,比如01;
  3. %day%:基于文章发布当日,比如06;
  4. %hour%:基于文章发布小时数,比如23;
  5. %minute%:基于文章发布分钟数,比如43;
  6. %second%:基于文章发布秒数,比如33;
  7. %postname%:基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;
  8. %post_id%:基于文章post_id,比如48;
  9. %category%:基于文章分类,子分类会处理成“分类/子分类”这种形式;
  10. %author%:基于文章作者名。

  将上述参数进行组合,即可得到wordpress的固定链接形式。

网上常见的几种设置方法:

/%year%/%monthnum%/%day%/%postname%//%year%/%monthnum%/%postname%//%year%/%monthnum%/%day%/%postname%.html

•/%year%/%monthnum%/%postname%.html

•/%category%/%postname%.html

•/%post_id%.html

总结:LosesToy认为,最好的 wordpress固定链接形式是:域名/文章 名(参数为/%postname%.html)。PS:原文作者已经说明最好参数,可本人觉得用/%post_id%.html 最简洁了。

说明:虽然上面的文章介绍了wordpress固定链接设置的方法,但是不是所有的人都是那么的聪明,就像比尔云一样,看了好几遍也不知道是啥意思。为了让有些朋友能更好的理解上一图让大家看看是怎么设置的。只要把上面喜欢的链接形式粘贴在下面自定义处保存就可以了。分类目录前缀和标签前缀也可以设置但是得是英文的。


第二,Win空间上实现WordPress博客伪静态的方法

1、写httpd.ini (用记事本即可,写好后放在根目录下OK)

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets throughRewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]

2、比如博客地址含有中文,或者是标签是中文的,就会转向到404页面,是通过httpd.ini解决不了的,必须来修改源代码。

修改网站目录下wp-includes/class-wp.php文件(请先行备份):

第一步:找到

$pathinfo = $_SERVER['PATH_INFO'];

修改为

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], ‘UTF-8′, ‘GBK’);

第二步:找到

$req_uri = $_SERVER['REQUEST_URI'];

修改为

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], ‘UTF-8′, ‘GBK’);

就这样,中文的TAG标签页等都可以打开了的。

说明:一般的lin主机设置伪静态比较方便,可是对于win空间却是非常的麻烦,我今天用一天的时间也没有研究。但是上面的这个方法却可以很好的实现wordpress伪静态的功能。但是,对于中文标签却不行,按照上面的方法试了也不管。其实对于这个问题很简单。大家都知道wordpress在设置分类和标签的时候都有个别名,我们来看下别名的介绍:“别名”是在URL中使用的别称,它可以令URL更美观。通常使用小写,只能包含字母,数字和连字符(-)。人家wordpress都告诉我们别名是显示在URL中的为什么要使用中文呢,我们也不用找什么方法了直接把别名设置成英文的就可以了。

第三,页面无法显示解决的办法

以上做好之后大家会发现页面无法打开,像文章分类和标签都可以设置别名的,这个怎么办了呢。刚才我在打开比尔云搏客的时候发现页面打不开,我记得今天看过一篇中文标签打不开的方法,就是把点页面的文章编辑,把中文结尾的链接给改成英文的就行了。如下图:


对于woredpress设置伪静态的方法有很多,遇到的问题也是很多。当遇到一个问题后我们要分析我们的空间支不支持伪静态,还有我们的空间是什么的,然后再针对问题到百度找答案。对于中文标签我们也不要浪费那么多的时间解决无法显示出现404的错误了。好了,有什么问题大家自己研究下吧,其实也很简单的,没想到这么长时间以来比尔云还是成功的给解决了这个问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章