前言
首先确保使用的服务器是Nginx,然后你可以直接跳到解决方案了!
前些天打算把服务器从Windows搬到Linux上,解决了一大堆杂七杂八的环境问题后,我有个问题始终找不到思路——文章页报错404,当时第一反应是把锅甩给数据库,备份好数据,然后清空数据库,不行,再一狠,重装,也不行。然后,然后就是漫长的一大堆的排查步骤…
最后找到在固定链接使用<朴素>设置可以解决问题,当时就没管了。。。
接触到SEO后我野心勃勃,还是打算拿下WordPress的 固定链接,嘿嘿…嘿嘿嘿…
错误根因
Nginx 没有配置重定向
解决方案
按照nginix的正则表达式的规则,可参考:Nginx 的中文维基
对网站使用的nginx的配置文件(默认是nginx.conf,如果配置过单独的conf,则编辑自己定义的conf)做如下修改:
在 server{}内,root /you_web_server语句下 加入以下代码
rewrite /wp-admin$ $scheme://$host$uri/ permanent; 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
service nginx restart
或
/etc/init.d/nginx restart
然后设置固定链接、保存
Done
参考文档:Nginx下修改WordPress固定链接设置后无法访问
发现这种做法会有后台链接出错的问题。分析发现,需要把
放到 if 判断前以优先重定向后台路径。