nginx因其异步线程特征,更快、更稳定、支持更多并发连接数,使得越来越多的站长放弃apache改用nginx做为web服务器,由于wordpress固定链接是基于apache的.htaccess实现的,并不能直接支持nginx,好在wordpress官方提供了针对nginx的配置规则,如下:

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;  
}  
}

使用这个规则实现了wordpress固定链接,但有一个问题尤其是多个wordpress在一台nginx服务器上运行时后台操作经常出现404,细心的站长观察地址栏可以发现地址栏中少了wp-admin路径,例如本来应该是 https://www.wnana.com/wp-admin/options-permalink.php 却变成了https://www.wnana.com/options-permalink.php这个不存在的路径,所以出现404页面,解决这个问题其实很简单,只需要在wordpress的nginx配置文件中加一条rewrite规则,完整代码如下:

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;

改完配置文件重启nginx服务即可。