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