WordPress伪静态设置

伪静态:即网站本身是动态网页如.php、.asp、.aspx等格式,而这类网页还带“?”加参数来读取数据库。开启伪静态后,动态网页即被转换重写成静态网页类型页面。

网上的虚拟空间主机基本都会提供伪静态的支持,在后台选择内容管理程序比如WordPress安装之后就会自动支持伪静态。

常见的未设置伪静态错误

WordPress站点迁移或更改固定链接为post_name之类命名格式之后,打开二级目录提示404无法访问。这时候可能就需要根据服务器环境来设置伪静态规则。

采用可视化的宝塔BT面板的同学不需要考虑这个问题,在面板的站点管理界面可以勾选伪静态规则,不需要自己更改文件。lnmp一键安装包在安装过程中也会提示如何开启伪静态支持。本文整理了WordPress在Apache、Ngnix和IIS下的伪静态规则设置方法,只供手动安装运行环境时参考。

Apache伪静态规则

首先要开启apache的url_rewrite模块(一般默认都是开启的),也就是在httpd.conf中去掉这句话的注释LoadModule rewrite_module modules/mod_rewrite.so,httpd.conf中找到AllowOverride,把AllowOverride None修改成AllowOverride all

在网站根目录下创建.htaccess 文件,复制以下内容进去。

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>

Nginx伪静态规则

将以下代码加入到网站的配置文件 xxxx.conf 的 server{} 中。

提供两种根目录下WordPress的伪静态规则写法,可自行修改。

nginx.conf 配置如下:

#注意:此规则需要放到location里面
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;
}

或者

location /
{
try_files $uri $uri/ /index.php?$args;
}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

IIS伪静态规则

现在应该很少人用IIS来运行WordPress了。新建httpd.ini 写入以下代码,放到WordPress站点的根目录下。

[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 /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]

duixiangge

多情自古空余恨。博爱众生的独立撰稿人。

发表评论

关闭菜单