前言

很久没折腾WordPress了,搭了个居然出现404错误,宝塔面板一键静态设置居然还不行,无奈还是手动改nginx伪静态设置,记录之防以后再用到。

解决

偷懒用的宝塔面板,一键搭建网站环境,一键设置伪静态是这样的:

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

但因为特殊的网站结构,常见的伪静态不适用了,需要如下设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
}

如果网站是放在二级目录访问的,如 http://sobaigu.com/wordpress ,那么上面涉及到的路径需添加 /wordpress 路径:

1
2
3
4
5
6
7
8
9
10
11
12
13
location /wordpress/ {
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 (.*) /wordpress/index.php;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
}

参考文档

WordPress-伪静态固定链接404的解决办法方案