解决Nginx环境WordPress或Typecho设置固定链接无法打开的问题

文章目录

[隐藏]

  • 错误现象
  • 解决办法
    • 添加伪静态规则
    • 开启PATHINFO

做网站搭博客,首选都是自己买个国外VPS,400+一年费用一般比国内的虚拟空间稍贵点,但相比买虚拟空间VPS好太多:

  • 私有独享ip
  • 足够多的存储空间:基本上都是10G起,要放什么文件都可以,数据库也可以随意多个
  • 足够多的流量:一般都是500G起,相比虚拟主机的10G优越不是一点两点,几个朋友一起用都不是什么问题
  • 最重要的是,境外VPS还有其他的用途:比如翻墙梯

当然,国外VPS也有个比不了的,那就是速度没有国内的虚拟主机快,但不需要备案啊!!!而且,就一个小网页,速度差别几乎感受不到。

错误现象

自己的VPS就需要自己维护了,就是一台远程的电脑,你自己能折腾出花来都行。自己不会折腾找卖家装好环境自己用就行。
一般搭网站用LNMP环境,对于静态网站,nginx默认设置就行,但对于WordPress或者Typecho这种动态站点,默认会出现设置带目录的链接时无法打开的情况。

http://xxx.com/blog/  http://xxx.com/2018/  http://xxx.com/%postname%.html  

不加设置以上形式的链接都会出现404错误。

解决办法

不支持目录链接是因为缺少伪静态规则,我们只需要按以下方法添加伪静态即可。

添加伪静态规则

Nginx环境下WordPress或者Typecho伪静态规则如下:

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;    }  }  

以上规则在nginx或者vhost配置中修改都可以。保存配置后,重启nginx一般就正常了。

开启PATHINFO

如果Typecho访问内页出现No input file specified错误提示,那么是没有开启pathinfo的支持。

方法:

找到/usr/local/php/etc/php.ini文件,将cgi.fix_pathinfo=0 改成 cgi.fix_pathinfo=1,保存后输入命令:service php-fpm重启php-fpm 即可。

原文出处:sobaigu -> http://sobaigu.com/nginx-path-index-with-wordpress-or-typecho.html

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-09-16 18:08:57
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
2781198
加我微信
[电话联系]
13585372227
[电子邮件]
chaoneo@163.com
取消

选择聊天工具: