电脑技术学习

针对WordPress seo 优化-url rewrite重写优化

dn001

二、IIS环境下的URL rewrite:

在windows主机IIS环境下,主机不支持mod_rewrite,有人在IIS7下测试过,WordPress有内建的url rewrite模块支持IIS7 。IIS 6 等的url rewrite可以有以下几种解决办法。

1. 第一种方法,可以在WordPress管理控制后台设置 http://example.com/index.php/年/月/日/日志名/ 这种形式的URL 重写。这里的index.php不能去掉(请看下面第三大点)。

2. 用ISAPI 实现url Rewrite

ISAPI 是英文“ Internet server application programming interface 的缩写,字面的翻译为:英特网服务器应用编程接口。实际上,ISAPI是微软为了扩展其主打WEB服务器产品IIS,为高级编程人员提供的一项特定技术,使得编程人员可以在服务器级上使用底层的API(应用编程接口)编程,扩展IIS功能。编写良好的ISAPI差不多可以接替IIS的全部工作,按照程序设计者的意图完成WEB应用。ISAPI编程与目前流行的其它web开发方式比较,其优势在于:性能、安全、全功能等方面。不少权威机构做过评测,ISAPI在各项指标上均领先于NSAPI(网景提供的一项服务器应用接口技术),与目前被大量使用的web开发脚本语言,比如ASP,PHP,JSP等比较,根本不在一个数量级。对于程序员来说,直接使用“应用编程接口是一件令人兴奋的事情。在GInfo虚拟网站平台上开发网站,与“高效等义。

ISAPI可用于支持URL rewrite(Url重写)。我们可以自己将相关的dll文件上传至指定目录,并点击添加 ISAPI筛选器 即可生效。理论上ISAPI可以支持任何系统的url rewrite,同时可以扩展支持其他isapi筛选功能。

具体操作时,创建httpd.ini文件或修改httpd.ini的内容,自定义RewriteRule的规则,然后上传到指定目录就可以了(注:以下RewriteRule重写规则根据WordPress版本和url重写方式的不同而有所不同,做些相应的改动即可):

[ISAPI_Rewrite]

# WordPress rewrite rules

# /%year%%monthnum%%day%/%postname%/

RewriteRule /tag/(.*) /index\.php\?tag=$1

RewriteRule /(about-me)/ /index.php\?pagename=$1

RewriteRule /category/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php\?category_name=$1&feed=$2

RewriteRule /category/?(.*)/ /index.php\?category_name=$1

RewriteRule /author/(.*)/(feed|rdf|rss|rss2|atom)/?$ /wp-feed.php\?author_name=$1&feed=$2

RewriteRule /author/?(.*) /index.php\?author_name=$1

RewriteRule /feed/?$ /wp-feed\.php/\?feed=rss2

RewriteRule /comments/feed/?$ /wp-feed\.php/\?feed=comments-rss2

RewriteRule /page/(.*)/ /index.php\?paged=$1

RewriteRule /([0-9]{4})([0-9]{1,2})([0-9]{1,2})/([^/]+)/?([0-9]+)?/?$ /index\.php\?year=$1&monthnum=$2&day=$3&name=$4&page=$5

RewriteRule /([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$ /index\.php\?year=$1&monthnum=$2&day=$3&page=$4

RewriteRule /([0-9]{4})/([0-9]{1,2})/?$ /index\.php\?year=$1&monthnum=$2&page=$3

RewriteRule /([0-9]{4})([0-9]{1,2})([0-9]{1,2})/([^/]+)/(feed|rdf|rss|rss2|atom)/?$ /index\.php\?year=$1&monthnum=$2&day=$3&name=$4&feed=$5

RewriteRule /([0-9]{4})([0-9]{1,2})([0-9]{1,2})/([^/]+)/trackback/?$ /wp-trackback.php\?year=$1&monthnum=$2&day=$3&name=$4&tb=1

3. IIS 下用404页面实现url 重写

新建一个wp-404.php文件,写入下面的代码,然后上传到服务器根目录上:

<?php
$qs = $_SERVER['QUERY_STRING'];
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['REQUEST_URI'] = substr($qs, $pos);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

然后通过虚拟主机管理后台软件把404页面指向wp-404.php。最后去WordPress后台,设置一下Permalink(请看下面第三大点),刷新一下首页,URL rewrite就可以正常工作了。在Windows 2003 + IIS6.0下试验成功。我觉得一些Linux主机,如果不支持.htaccess的话,也可以使用这种办法进行URL重写。有一个问题是不支持中文,postname和tag最好是英文的,中文的tag可以去设置一下tag slug。不过很多人怀疑用404页面设置url rewrite 会使404页面设置不能正常发送404 HTTP header,因此这种方法不建议使用。