经过一番折腾,已经成功换成lnmp,后来发现网站除开首页外,其他所有栏目文章全是404,没办法,搜索吧,搜索大概原因说是因为原先WordPress它可以利用Apache的mod_rewrite来实现URL的静态化。安装好的WordPress在配置了持久链接之后,会在网站的根目录下生成一个.htaccess文件,
这个文件可以指示Apache如何进行URL重写,而Apache是识别.htaccess文件的,当转为Nginx后,是不识别了,导致伪静态规则无效了,404了,大概就是这么回事吧,那么如何去解决这个问题呢?个人用的是lnmp1.3安装包的。
后来在网站搜索了一大圈,发现都是说,把原先写在.htaccess文件中的伪静态规则转移出来,如下文章
PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法
大概一律都是这类的文章,发现不行,由于个人对这方面不懂,无奈只能继续搜索,搜索“Nginx的WordPress配置,基于nginx的wordpress配置伪静态,404“”等等类似的,最后基本都是在nginx.conf里加如下类似的代码
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 在nginx服务器下重写路由,解决设置固定链接后出现404错误
说的方法是:
貌似官方给出了新的开启wordpress固定链接的方法,也简单的多。这里假设,我在nginx的conf文件夹下创建个wordpress.conf ,将下面的代码粘贴进去:
location / {
try_files $uri $uri/ /index.php?$args;
}
最后再在你对应网站的配置文件中加载include wordpress.conf。
还有如下这些文章:
wordpress配置固定链接nginx访问404问题解决方法
Nginx的WordPress配置。
解决Nginx下WordPress后台404的问题
等等类似的,最后发现都是不行的,后来想想可能是自己搜索错了,没有找到方法,也是的,看到wordpress.conf,那再搜索吧,那就来搜索“nginx配置wordpress.conf“,找到这篇:nginx上万能的wordpress伪静态配置方案
按着上面的方法弄了,(本例的配置文件在usr/local/nginx/conf)
在ngnix.conf里面的include vhost/*.conf;后面也用include wordpress.conf进去,发现报错不行,是不是路径不对,检查改了总之没有成功,
最后搜索“WordPress从Apache迁移到Nginx过程”,找到了方法。跟上面这篇类似的。WordPress从Apache迁移到Nginx过程 ,
因为发现include进去,总之报错,也懒得弄了,然后个人直接把下面代码写到usr/local/nginx/conf中的nginx.conf里的server,最后发现可以了,所有文章和栏目都可以访问了。代码如下:
location / { if (!-e $request_filename) { rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last; rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last; rewrite ^ /index.php last; } }由于对这方面不懂,也是第一次碰到这个问题,所以在此简单记录一下这个过程和最后找到的解决方法。