前两天搬到了EMSVPS的PR线路上,用上了最新的WDCP2.0管理面板,支持多用户管理(我们几个合租的VPS,最需要这个功能了),感觉很不错,屁颠屁颠的把网站搬过来了,然后设计wordpress伪静态规则。我还是使用的是WDCP1.0时代的wordpress伪静态规则

try_files $uri $uri/ /index.php?q=$request_uri;

结果重启nginx,还是显示404。这就让我纠结了。后来我有测试一个网上最普遍的

try_files $uri $uri/ /index.php?q=$uri&$args;

结果还是失效,急的我像是热过上的蚂蚁啊,又在网上陆续找了一些伪静态规则,没一个成功了。重启服务器重启了N次。

黄天不负有心人,最后终于让我找到了一条可以用的

rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;if (!-e $request_filename) {rewrite ^.+?(/wp-.*) $1 last;rewrite ^.+?(/.*\.php)$ $1 last;rewrite ^ /index.php last;}

根据这条规则发明人的解释,第一条规则

try_files $uri $uri/ /index.php?q=$request_uri;

会让所有的找不到的目录和文件跳转到index.php处理,很有可能是我的index.php权限问题或者其他原因导致不能将伪静态地址映射到真实地址中去。所以才会出现这个纠结的问题。