首先,我想说的是,对于 WordPress 支持最好的当然是 Linux 主机,但国内情况特殊,很多网友和我一样,不会使用Linux主机,因为都是写命令呢,习惯了窗口模式的win主机,所以不得不采用 Windows 主机。而Windows 主机下使用 WordPress,还是存在一些 bug,比如,WordPress 的固定链接功能(也就是常说的伪静态)。
下面着重讲下 win 主机(VPS)下的 wordpress伪静态(去除category)的方法。包括
我们都知道,Wordpress程序很强大,对搜索优化很友好,一般我们使用wordpress都会将固定链接设置成伪静态的。但是WP却只能在LINUX系统的服务器中才能很好的使用,在WINDOWS系统的IIS中设置伪静态会在前面加上index.php,所以无法实现真正的伪静态功能。
但现在的国情是了国内大部分的主机空间使用的都是windows操作系统,即所谓的全能空间,说是全能,其实在支持PHP代码以及支持伪静态方面非常废柴。那有没有办法让其支持固定链接呢?只要你的主机支持自定义404页面,那就有办法,无需安装插件,就能让Win主机像Linux 那样,方便使用WordPress的固定链接为静态化地址格式。
网上很多人都在寻找真正解决win主机下的固定链接方法。这里分享一个比较简单的解决方法。包括自定义固定链接
第一种方法:用404.php实现伪静态。
1、新建一个404.txt文档,将以下代码复制进去:
- <?php
- $qs = $_SERVER[‘QUERY_STRING’];
- $_SERVER[‘REQUEST_URI’] = substr($qs, strpos($qs,’:80′)+3);
- $_SERVER[‘PATH_INFO’] = $_SERVER[‘REQUEST_URI’];
- include(‘index.php’);
- ?>
复制进去后,点击另存为,保存为404.php.
2、然后进入WP后台,【设置】–【固定连接】里面,先把固定连接选择自定义,设置成/%post_id%.html。
3、上传下面的404.php页面到网站根目录下,然后在虚拟主机控制面板里面修改404跳转页面为刚才上传的404.php,这样就可以实现伪静态了。
第三步是个重点,下面看图。
(1)、打开Internet 信息服务(IIS)管理器
(2)、找到自己的网站,右键属性。
(3)、找到 找到404页面
(4)、编辑
到此 已基本可以解决伪静态,
第二种方法:
首先你的主机(或者VPS)要装Rewrite 组件,现在国内很多WINDOWS主机都有装这个了,但是很多主机商,没有开启,所以你得让他给你开好。
使用方法:新建httd.ini文件,复制以下代码,保存。直接上传到网站的根目录。然后去WP后台设置固定连接:/%post_id%.html
然后在httpd.ini 中加入如下代码:
[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 /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]
但是,有时候会出现这样那样的问题
如果用了第二种方法导致百度地图链接打不开请添加以下两句代码:
RewriteRule /sitemap.html /sitemap.html [L]
RewriteRule /sitemap_baidu.xml /sitemap_baidu.xml [L]
第三种方式:另外一个比较具体的写法,如果用第二个有问题,可以尝试这个
[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# wordpress 伪静态规则
# For tag(中文标签以及标签翻页的规则)
RewriteRule /tag/(.*)/page/(\d+)$ /index\.php\tag=$1&paged=$2
RewriteRule /tag/(.+)$ /index\.php\tag=$1
# For category(中文分类以及分类翻页的规则)
RewriteRule /category/(.*)/page/(\d+)$ /index\.php\category_name=$1&paged=$2
RewriteRule /category/(.*) /index\.php\category_name=$1
# For sitemapxml
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /sitemap.html /sitemap.html [L]
RewriteRule /sitemap_baidu.xml /sitemap_baidu.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]
这种,就是万能的了。
以上几步做完就OK了~。
如果是自己的vps,而没有 IIS Rewrite 组件,那就得自己配置一个了。
下面是配置教程:
(1)、将下载的 IIS Rewrite (ISAPI_Rewrite3.rar)组件解压,放到适当的目录(如C:ISAPI_Rewrite3)下。
(2)、解压完毕后,您需要给C:\ISAPI_Rewrite3目录加上adms,system全部的权限、Users读与运行的权限,如果您不加上Users的权限,就会造成IIS无法启动。
(3)、设置好权限后,在 IIS 管理器里选择网站,右键选择“属性”,如下图所示:
(4)、然后选择ISAPI筛选器,然后点击“添加” 选型卡 如下图:
(5)、点击添加选项卡之后,在筛选器名称填写iiswrite,可执行文件选取:C:\ISAPI_Rewrite3\ISAPI_Rewrite.dll ,也就是解压isapi_rewrite 3的文件夹路径。如下图:
(6)、点击“确定” 按钮。
(7)、重新启动 IIS 。
(8)、点击确定
(9)、重新选择网站 => 右键“属性”=> “ISAPI 筛选器”,如果看到状态为向上的绿色箭头,就说明 IISRewrite 模块安装成功了。
到此你就可以成功在win主机下完成伪静态了。
另外,如果需要去掉固定链接的分类,你可以使用一个插件加上修改wordpree程序文件class-wp.php的方法实现文章名.html,请看下面:
我们需要将分类去掉,去掉的方法很容易,只须装置WP No Cingestedgory Bautomotive service engineers插件即可,装上后无需设置,主动的就将分类目录默许前缀分类去掉了,去掉后,我们的URL地址就会收缩像这样了/%postname%.html