由于http服务由原来的Apache转换到Nginx,配置要求支持自定义url,由于之前一直在用Apache,受惯性思维的思维的影响,一开始尝试使用.htaccess文件来实现,查阅相关资料后发现,nginx服务器默认是不支持.htacceess,只能当它是普通的配置文件,可以把它include进来,而重写规则与Apache的写法是不同的,网上也有相应的转换工具,但是感觉不靠谱,因为不明白原理。
接下来,继续查找资料,把wordpress后台设定链接形式选为自定义,格式为Custom Structure为 /%category%/%post_id%.html
尝试了比较多的形式是 if(!d xxxx){rewrite (.*) /index.php}
这种形式试过了,除了文章的链接是可以实现的外,其它的全部跳去404页面,这时百思不得其解,放下一天,今天早上上班,感觉很不爽,总有个问题在心里,碍着碍着的感觉,立下决心,今天一定要解决。
由于线上的网站已经在使用,调试起来极不方便,就想着自己搭建一个环境,刚好,会议室有台服务器,已经安装了Centos,网上搜了一篇文章,里边很详细的介绍了安装步骤,照着敲就行了,安装完成之后,配置好nginx,安装wordpress,设定跟在线使用wordpress一样的配置。
写重写规则
try_files $uri $uri/ /index.php;
写在nginx server 段下的location段中。
然后重新载入配置文件
service nginx reload
发现没有任何作用,在自问“重写规则写错了?”静下心思考,是配置没生效吧,果断重启nginx,然后,一切都正常了,It works.
总结:网上的文章不可全信,一定要有自己的思考,是什么?为什么?只有了解清楚了,解决就不会太难。