1. %year% 基于文章发布年份,比如2007;
2. %monthnum% 基于文章发布月份,比如05;
3. %day% 基于文章发布当日,比如28;
4. %hour% 基于文章发布小时数,比如15;
5. %minute% 基于文章发布分钟数,比如43
6. %second% 基于文章发布秒数,比如33
7. %postname% 基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;
8. %post_id% 基于文章post_id,比如423;
9. %category% 基于文章分类,子分类会处理成“分类/子分类”这种形式;
10. %author% 基于文章作者名。
将上述参数进行组合,即可得到wordpress的固定链接形式。网上常见的几种设置方法:
/%year%/%monthnum%/%day%/%postname%/
/%year%/%monthnum%/%postname%/
/%year%/%monthnum%/%day%/%postname%.html
/%year%/%monthnum%/%postname%.html
/%category%/%postname%.html
/%category%/%post_id%
/%postname%.html
/%post_id%.html 我们一般使用这个方式比较好。
wp永久链接设置技巧:
一、不要让日期出现在wordpress固定链接里面
这基于两个方面的考虑。一是如果数字出现在固定链接里面,等于提醒搜索引擎,这是很旧的内容了,没必要再爬一遍了。另外一个原因是,假如你要修改文章的日期重新发布的话,链接地址就变了,也就是意味着你的反向链接,PR 等等都没有了。
二、不要让分类的链接出现在固定链接里面
这一点是很多人都会忽略的地方。让分类出现在固定链接里面有两个缺陷:一是一篇文章如果选择了多个分类的话,则会出现多个链接地址,这很容易造成因为重复内容而被搜索引擎惩罚;二是有可能会造成关键词堆砌而被搜索引擎惩罚。
三、链接不要过深
这一点经常看到。很多wordpress 用户的固定链接是年/月/日/分类名/文章名。这种过于深的固定链接对搜索引擎是非常不友好的。
四、不要让中文字符出现在固定链接里面
虽然现在的搜索引擎已经能识别URL地址里面的中文字符,但无论是从美观上,还是从wordpress 优化的角度来看,都是非常差的。
Win服务器下设置WordPress固定链接伪静态
只要主机支持自定义404页面,无需安装插件,就能让Win主机像Linux 那样,方便使用WordPress的固定链接为静态化地址格式。
设置固定链接(Permalink)伪静态步骤:
1. 将以上代码保存为 404.php,并上传至主机根目录。
2. 设置 404 自定义错误页为 404.php。
3.进入 WordPress 控制面板,设置(Options)- WordPress固定链接(Permalinks),选择固定链接格式。如果你觉得上面新建404页面太麻烦了!那我给你推荐一个插件吧!那就是 Permalinks Migration Plugin Permalinks Migration Plugin的主要原理是利用“301转向”来实现既不丢失原有的链接,同时又让读者和搜索引擎知道,你已经修改了固定链接的效果,让他们尽快更新链接。
也许自己好久没有写程序了,慢慢的什么都给退化了呢,我也有看见wordpress写有.htaccess这个文件,为什么不行呢?后来上网查了一下,原来我未开启伪静态的模块LoadModule rewrite_module,于是在 apache的配置文件httpd.conf开启了LoadModule rewrite_module,然后再设置固定链接的形式为/%post_id%.html,就可以打开了,自然高兴了,我本地的环境是win+php+apache的;当然为我们提供的服务商一般用的iis服务器的,解决办法是
首先你先问你空间商,你购买的空间支持不支持伪静态,一般购买的付费空间/虚拟主机都是支持的。如果支持的话,就创建一个httpd.ini文件,把下面代码保存到该文件中,上传到网站的根目录就可以了。然后,之后进入WP后台修改固定链接,比如修改为:%/tegory%/%post_id%.html,很简单吧。
复制代码
代码如下:
[ISAPI_Rewrite]
# Defend your computer from some worm attacks
#RewriteRule .*(?:global.asa|default.ida|root.exe|..).* . [F,I,O]
# 3600 = 1 hour</p><p>CacheClockRate 3600
RepeatLimit 32</p><p># Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through</p><p>RewriteRule /tag/(.*) /index.php?tag=$1
RewriteRule /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]
这个规则文件的写法是IIS6.0下最新的wordpress伪静态规则。一般win主机都是IIS6.0的web服务器 ,而不是Apache的,在IIS服务器下,像一些常见的wordpress博客、shopex网店系统等第三方知名第三方程序,伪静态的实现,自己只需要把网站的静态化规则文件命名为httpd.ini文件放在网站根目录就可以了,无须通过网站后台设置,那是在Linux系统下的Apache服务器下才那样设置。
下面这个方法也是从网上找来的,希望和大家一起分享学习了,有什么好的方法一起多多交流了!
因为要迁移wordpress到IIS服务器上面,所以就在网上找了一些方法,开始以为和Linux上面一样的,配置PHP就OK了,但是发现不能访问wprdpress的永久固定链接,因为链接的形式是以.html结尾的,所以IIS不能识别,怎么办了?最后找到一个IIS插件,WordPress URL Rewrite,这个插件还不错,可以实现大部分的URL永久访问,但是问题来了,貌似不能访问文章页面,怎么了?原来还有404的方法,这个就可以解决中文URL和.html类的永久固定链接的访问了。一、Windows2003 IIS6下配置WordPress伪静态方法:
1.下载WordPress URL Rewrite组件
下载地址:http://www.binaryfortress.com/wordpress-url-rewrite
WordPress URL Rewrite主要功能与特色:完全无需人工干预,全自动重写URL,只需要在后台设置好固定链接(Permalinks)形式,就能直接使用,就像linux下用htaccess一样。可以使用在一级目录和子目录,也可以排除不需要重写的目录。这个非常方便,对于某些目录不需要URL重写的就将其排除,不会造成无法访问。因为全自动,所以免去了在写重写规则时候遇到的规则重复造成部分目录和文件无法实现的情况。
2.安装WordPress URL Rewrite
把下载的压缩包解压到任何地方,只要保证WordPressURLRewrite.ini和WordPressURLRewrite32.dll(32位版本,64位版本对应为64.dll)在同一文件夹下就可以了。
然后打开WordPressURLRewrite.ini设置你的博客目录,以及需要排除的目录,Readme.txt里有详细说明,这里就不细说了。
接下来,在IIS中选择相应的站点,在ISAPI筛选器中加载WordPressURLRewrite32.dll就可以了,加载完重启IIS或者停止网站再启动即可。
注意:要给dll所在的目录加上IIS_WPG组的写入权限,否则无法加载对应dll文件。
二、利用404页面实现伪静态
首先需要编写404.php页面,上传404.php文件放到wordpress根目录下,代码如下:
<?php
if (strpos($_SERVER["SERVER_SOFTWARE"], "Apache") === 0){
// Apache
// REQUEST_URI形如"/non-exist-page.html"
$uri = $_SERVER['REQUEST_URI']
}
else{
// IIS
// $_SERVER['QUERY_STRING']形如"404http://localhost/non-exist-page.html"
$qstr = $_SERVER['QUERY_STRING']
$_SERVER['QUERY_STRING'] = ""
$pos = strrpos($qstr, '://')
$pos = strpos($qstr, '/', $pos + 4)
$uri = substr($qstr, $pos)
}
$_SERVER['REQUEST_URI'] = $uri
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI']
// 解决重定向的页面中的页面导航问题
$_SERVER['SCRIPT_NAME'] = $_SERVER['PATH_INFO']
include('index.php')
?>
然 后需要设置IIS的404页面到wordpress根目录下的404.php。IIS下的设置步骤为:Internet信息服务窗口->右键网站或 wordpress目录->属性->自定义错误->选中404->编辑属性…->消息类型选择url->输入 /404.php(绝对路径)。
三、解决中文404找不到页面的问题
1.打开wp-includes/classes.php文件,找到如下代码:
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO']
else
$pathinfo = ''
$pathinfo_array = explode('?', $pathinfo)
$pathinfo = str_replace("%", "%25", $pathinfo_array[0])
$req_uri = $_SERVER['REQUEST_URI']
将其修改替换为:
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = iconv('GBK', 'UTF-8', $_SERVER['PATH_INFO'])
else
$pathinfo = ''
$pathinfo_array = explode('?', $pathinfo)
$pathinfo = str_replace("%", "%25", $pathinfo_array[0])
$req_uri = iconv('GBK', 'UTF-8', $_SERVER['REQUEST_URI'])
好了,就这样,我们的网站就可以访问了,至于SEO和404页面方法的问题,这个就留给博友们去研究吧。目前TC没有多少时间去研究了,如果有时间会继续写一篇关于404页面的影响的。目前还没有发现什么问题,至于收录就期待吧。
我毫不夸张的对楼主说,WIN主机设置WordPress伪静态非常麻烦,还要想办法去掉那个链接里的index.php如果条件允许,还是购买Linux的主机空间吧,后台直接设置伪静态,根目录自动生成.htaccess文件,就搞定了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)