wordpress默认的链接是动态的形式,大家都喜欢搞搞SEO,变换下链接地址,于是wordpress伪静态就登场了。伪静态的链接更具有层级结构关系,更有利于蜘蛛抓取,不同的web环境伪静态链接规则也不一样,整理了几种,方便大家参考。

apache环境下的wordpress伪静态规则

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

新建一个.htaccess文件并将以上代码写入.htaccess文件中,上传至wordpress站点的根目录中。

IIS环境下的wordpress伪静态规则

方法1、打开站点根目录下的web.config文件并加入以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
 <rewrite>
 <rules>
 <rule name="category">
 <match url="category/?(.*)" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
 <action type="Rewrite" url="/index.php?category_name={R:1}" appendQueryString="false" logRewrittenUrl="false" />
 </rule>
 <rule name="tags">
 <match url="tag/?(.*)" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
 <action type="Rewrite" url="index.php?tag={R:1}" />
 </rule>
 <rule name="Main Rule" stopProcessing="true">
 <match url=".*" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
 </conditions>
 <action type="Rewrite" url="index.php/{R:0}" />
 </rule>
 <rule name="wordpress" patternSyntax="Wildcard">
 <match url="*" />
 <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
 <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>

方法2、新建一个httpd.ini文件并加入以下代码:

[ISAPI_Rewrite]
# Defend your computer from some worm attacks
#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
# 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 /tag/(.*) /index\.php\?tag=$1
RewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /sitemap.xml.gz /sitemap.xml.gz [L]
RewriteRule /robots.txt /robots.txt [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]

上传至wordpress站点根目录。

nginx环境下的wordpress伪静态方法

location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}

将以上代码加入到nginx.conf文件的Server段内。
这是目前比较流行的几种web配置的伪静态规则。

由 floryu 发布

喜欢折腾,喜欢分享,喜欢WordPress,提供WordPress主题、插件汉化,以及WordPress、DEDECMS建站。

发表回复