标题：wordpress固定链接
什么是固定链接
固定链接(Permalink)是博客日志、分类及其他博客内容列表的永久URL。其他博客主人可以使用固定链接链接到你的文章上，你也可以在email中发送某篇日志的链接。所有日志的URL应为永久性、固定不变的-这就是所谓的固定链接。
固定链接的类型
默认形式(不美观的)
如：http:// example .com/?p=N 这里的N是Post ID号。它能够在所有服务器环境下使用，但这种形式的URL看起来不是很好看。
mod_rewrite类型（美观的） 这些固定链接样式可谓浅显易懂、赏心悦目。虽然这种链接的格式多种多样，但最常见的形式还是
category/post-name/或 /year/month/day/post-name。这种类型的 某些用户移除了日期元素（日，月，年）以使得永久链接格式变得更精简。
固定链接可在以下环境中工作：
具有mod_rewrite模块的Apache网络服务器 Microsoft IIS7 + 带有URL Rewrite 1.1的网络服务器 + 作为FastCGI运行的模块与PHP5 使用404处理程序或 mod_rewrite 或 mod_magnet 的LighttpdPATHINFO（完美的） PATHINFO 固定链接形式跟mod_rewrite 固定链接形式很相像，只有一点不同：前者插入了 /index.php ，如下：
/index.php/yyyy/mm/dd/post-name/ 除此之外，PATHINFO就跟mod_rewrite 固定链接一样完美了，其灵活性也很相似。mod_rewrite 固定链接所能达到的效果，PATHINFO 固定链接通过/index.php部分也能做到。
wordpress固定链接设置方法
进入wp后台->设置里面的固定链接->自定义结构
wordpress固定链接的结构
这里有几个结构可以作为参考：
%year% 日志发表的年份，四位数字
%monthnum% 日志发表的月份
%day% 日志发表的日期
%hour% 日志发表的时间-小时
%minute% 日志发表的时间-分钟
%second% 日志发表的时间-秒
%postname%日志标题的缩略版本（日志/页面编辑界面上的日志别名）。因此“This Is A Great Post!”在URI中会变成this-is-a-great-post。
%post_id%日志的唯一ID，如123
%category%分类名称的缩略版本（添加新分类/编辑界面上的分类别名）。嵌套的子分类会作为嵌套子目录出现在URI中。出于运行方面的考虑，不推荐以%category%作为固定链接的起始部分。
%tag%标签名称的缩略版本（添加新标签/编辑界面上的标签别名）。出于运行方面的考虑，不推荐以%tag%作为固定链接的起始部分。
%author%作者名称的缩略版本.
既然知道了我们就可以对这些开始组合了。
几种组合方式如下
/?p=%post_id%（默认的）
/%year%/%monthnum%/%day%/%postname%/（年/月/日/日志名）
/%year%/%monthnum%/%postname%/（年/月/日志名）
/%monthnum%/%day%/%postname%/（月/日/日志名）
/%year%/%monthnum%/%day%/%post_id%/（年/月/日/日志id号）
/%year%/%monthnum%/%post_id%/（年/月/日志id号）
/%monthnum%/%day%/%post_id%/（月/日/日志id号）
/archives/%post_id%（/archives/日志id号）
/archives/%postname%（/archives/日志名）
/%post_id%（/日志id号）
/%postname%（/日志名）
/%category%/%postname%.html （分类/日志名.html）
/%category%/%postname%.htm（分类/日志名.htm）
/%postname%.html（/日志名.html）
/%postname%.htm（/日志名.htm）
/%post_id%.html（/日志id号.html）
/%post_id%.htm（/日志id号.htm）
常用的就是以htm后者html方式结尾的。当然这个可以随你的喜好自由改变。
win主机IIS 6 WordPress固定连接的设置
一般使用wordpress都会将设置固定链接（伪静态）,这样更有利于seo,wordpress在LINUX系统的服务器中可以很好的使用，在Windows主机,为了完美支持伪静态就需要下点功夫。
空间需要支持rewrite组件,现在几乎所有WIN主机都支持Rewrite 组件,有个问题就是,博客链接能伪静态，可中文标签的链接打不开,比如我们设置的中文目录中文tag,就打不开了。解决WordPress博客伪静态中文标签无法打开可以使用下面的规则：
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /tag/(.*) /index\.php\?tag=$1
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through
RewriteRule /robots.txt /robots.txt [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]
在使用上有什么不清楚请查看下面的参考资料，有详细的设置教程WIN主机二级目录装WordPress固定链接设置很多朋友主站并不想放博客，有的朋友喜欢美观想放一个主页什么的，有的是公司的网站，或者有的朋友想做淘宝客，那么这样只能把WordPress放到二级目录（子目录）里面了，wordpress在二级目录的伪静态规则规则：
[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 through
RewriteRule /blog/sitemap.xml /blog/sitemap.xml [L]
RewriteRule /blog/favicon.ico /blog/favicon.ico [L]
# For tag 
RewriteRule /blog/tag/(.*)/page/(\d+)$ /blog/index\.php\?tag=$1&paged=$2
RewriteRule /blog/tag/(.+)$ /blog/index\.php\?tag=$1
# For category 
RewriteRule /blog/category/(.*)/page/(\d+)$ /blog/index\.php\?category_name=$1&paged=$2
RewriteRule /blog/category/(.*) /blog/index\.php\?category_name=$1
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /blog/wp-(.*) /blog/wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/blog/$ /blog/index.php [L]
RewriteRule /blog/(.*) /blog/index.php/$1 [L]
#For page
RewriteRule /blog/page/(.*)/?s=(.*) /blog/index\.php\?s=$2&paged=$1
RewriteRule /blog/page/(.*) /blog/index\.php\?paged=$1
如果在规则使用上有什么不明白的地方请查看下面的参考资料详细教程win主机安装两个wordpress固定链接设置如果根目录和子目录同时装wordpress程序，该怎么实现伪静态？
固定链接设置规则：　　
[ISAPI_Rewrite]　　# 3600 = 1 hour　　CacheClockRate 3600　　RepeatLimit 32　　# For sub　　RewriteRule /wordpress/sitemap.xml /wordpress/sitemap.xml [L]　　RewriteRule /wordpress/favicon.ico /wordpress/favicon.ico [L]　　RewriteRule /wordpress/tag/(.*)/page/(\d+)$ /wordpress/index\.php\?tag=$1&paged=$2　　RewriteRule /wordpress/tag/(.+)$ /wordpress/index\.php\?tag=$1　　RewriteRule /wordpress/category/(.*)/page/(\d+)$ /wordpress/index\.php\?category_name=$1&paged=$2　　RewriteRule /wordpress/category/(.*) /wordpress/index\.php\?category_name=$1　　RewriteRule /wordpress/wp-(.*) /wordpress/wp-$1 [L]　　RewriteRule ^/wordpress/$ /wordpress/index.php [L]　　RewriteRule /wordpress/(.*) /wordpress/index.php/$1 [L]　　RewriteRule /wordpress/page/(.*)/?s=(.*) /wordpress/index\.php\?s=$2&paged=$1　　RewriteRule /wordpress/page/(.*) /wordpress/index\.php\?paged=$1　　# For root　　RewriteRule /tag/(.*) /index\.php\?tag=$1　　RewriteRule /robots.txt /robots.txt [L]　　RewriteRule /sitemap.xml /sitemap.xml [L]　　RewriteRule /favicon.ico /favicon.ico [L]　　RewriteRule /wp-(.*) /wp-$1 [L]　　RewriteRule /wordpress/(.*) /wordpress/$1 [L]　　RewriteRule ^/$ /index.php [L]　　RewriteRule /(.*) /index.php/$1 [L]
关于规则使用设置，详细图文教程请查看下面的参考资料
win主机IIS 7 WordPress固定连接的设置
“美观的”固定链接通常会要求使用mod_rewrite，而IIS（常见于Windows服务器）却不支持mod_rewrite。（如果你在Windows上使用Apache 2.0.54，mod_rewrite可能会运行，前提是要在apache\conf\httpd.conf.中激活mod_rewrite）。
使用IIS 7并具备服务器管理权限时，可以使用Microsoft的URL重写模块来代替mod_rewrite。虽然IIS 7不完全兼容mod_rewrite，但它支持WordPress的固定链接。Microsoft的URL重写模块安装完毕后，在WordPress目录下打开web.config文件，将以下规则添加到system.webServer 元素中：
<rewrite>
< rules>
< rule name="Main Rule" stopProcessing="true">
< match url=".*" />
< conditions logicalGrouping="MatchAll">
< add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
< add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
< /conditions>
< action type="Rewrite" url="index.php" />
< /rule>
< /rules>
< /rewrite>
win主机 IIS 7伪静态规则的具体使用方法可以查看下面参考资料
IIS网站上有一份关于Microsoft的URL重写模块详细的安装指南，该模块可用于 x64 与x86系统。
如果这个方法行不通，还可以试试PATHINFO链接；将index.php/放在自定义链接结构的开始部分前：
/index.php/%year%/%monthnum%/%day%/%postname%/这个方法并不总能成功，尤其是用在运行于ISS 6上的WordPress时。要让这方法运行在IIS上，需要将以下两行代码添加到php.ini文件并将文件保存在网络根目录下。
cgi.fix_pathinfo = 1
cgi.force_redirect = 0
另一种解决方法是利用IIS的自定义404重定向。这要求你的虚拟主机允许你添加自定义404重定向，不过这并不需要你安装任何第三方mod_rewrite软件，也不需要你的固定链接结构以/index.php/开头。IIS7虚拟主机装两个wordpress固定链接设置安装两个wordpress，一个在根目录，一个在子目录（二级目录）伪静态规则设置方案：
根目录的伪静态规则设置可以看下面参考资料
在子目录（二级目录）中的安装wordpress，Web.config配置文件伪静态代码：
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules><remove name="wordpress"/>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule></rules>
</rewrite>
</system.webServer>
</configuration>
详细的设置方案，图文教程可查看下面参考资料
解决win主机下中文目录标签出现404错误
产生中文TAG标签链接和中文别名分类目录链接无法打开的原因是WordPress不支持中文的编码。我们需要编辑WordPress源文件让它支持中文的编码形式，也就是UTF-8和GBK编码。
打开编辑wp-include/class-wp.php文件；
<1>
$pathinfo = $_SERVER['PATH_INFO'];
替换为
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK");
<2>
$req_uri = $_SERVER['REQUEST_URI'];[/php]
替换为
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK");
详细设置方案，有源文件提供下载，图文教程请查看下面参考资料
使用固定链接的一些问题
常见的几个问题
若是以/%category%/%postname%/这种方式来自定义固定链接的时候打开的网址可能会出现乱码，可能会打不开页面，那是因为分类目录和文章名字是中文引起的，这样我们可以使用英文的别名来解决。
在创建wordpress固定链接的时候会出现别名设置，选择合适的英文或者拼音。
在发布文章的时候在文件标题下方有一个固定链接，选择编辑即可。
使用固定链接的必要条件
具有mod_rewrite模块的Apache网络服务器 在WordPress主目录下 激活 FollowSymLinks选项 允许FileInfo directives（如 AllowOverride FileInfo 或 AllowOverride All） 一个.htaccess文件（若该文件缺失，WordPress会尝试在用户激活美观的固定链接时创建一个新文件） 如果你希望WordPress自动更新.htaccess文件，需要为WordPress赋予该文件的写入权限 当你新建或更新了一个“美观的”固定链接结构后，WordPress会生成重写规则并尝试将重写规则插入适当的.htaccess文件。如果WordPress无法将重写规则插入.htaccess文件，就会显示You should update your .htaccess now（请立即升级你的.htaccess文件）这样的信息，然后输出重写规则，让你复制并粘贴到文件中（将规则置于文件结尾处）。
在WordPress 2.0以及更高版本中，你可能只需要执行一次以上动作，因为WordPress会在内部运行重写规则。如果移动了WordPress主目录的地址（博客地址），就需要重复以上动作。
WordPress会与已有的.htaccess文件合作愉快，也不会删除任何已存在的重写规则或其他指令。如果你有其它mod_rewrite规则，请将你的规则优先于WordPress生成的mod_rewrite规则。
Linux主机下出现404错误页解决方案
在Linux主机下，Wordpress固定连接后，也有出现404错误页的可能！
最简单的方法如下：
自建个 TXT 文章 把下面这段代码复制进去！
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase / 
RewriteRule ^index\.php$ – [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /
RewriteRule ^index\.php$ – [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress
然后把TXT文件更改名字
扩展名一起改的哦 .htaccess?
把这个文件上传到 WordPress 根目录 
然后把权限改成777 这样就OK了?
实在不清楚的地方 
你可以参考下面的资料！