关于Typecho在Nginx环境下登录或是查看文章404的情况

前言

网站是昨天晚上搭建的,但是过程并不顺。在我安装完成的一瞬间,我立马进入后台准备来一波疯狂操作,然后睡觉。可万万没想的是我登录不进去网站。不过在我千辛万苦的奋斗下终于完成了。

打卡文章页面报错404
捕获.JPG

登录后台看看,莫得问题,可以正常打开
QQ截图20210704162526.png

遗憾的是我输入账号密码登录点击登录时,404!!!
QQ截图20210704162545.png

环境

  • 服务器环境 : Windows Server 2012 R2 Datacenter (build 9600) x64 (Py3.8.6)
  • 宝塔面板 : 7.1.0 免费版
  • 运行环境 : Nginx 1.18.0 + PHP 7.2
  • 数据库环境 : Mysql 5.5.62

探索

这是我在百度上找到的操作,原文地址 : https://qq52o.me/2230.html。

Nginx 服务器点击前台链接或者后台登录时出现 404, not found
官方给的解决方式是一般的出现这种情况时,nginx.conf 里的 location 设置都是类似这样

location ~ .*\.php$

要支持 pathinfo,要改成

location ~ .*\.php(\/.*)*$

在某些老版本的 php 里面,可能还要打开 php.ini 里的 cgi.fix_pathinfo

cgi.fix_pathinfo = 1

我没有按照这个来,页面 404 一般都是伪静态的问题,在军哥的一键包中有伪静态设置,在添加的时候默认使用了 other.conf,这里要换成 > typecho.conf

军哥的一键包中默认已经有了一些常用的 Nginx 伪静态配置文件,可以直接输入名称进行使用

我选择使用 wordpress 的配置,修改原来的伪静态配置,配置文件在:/usr/local/nginx/conf/vhost/域名.conf

把 include other.conf; 改为 include wordpress.conf;

执行:/etc/init.d/nginx restart 重启生效

然后访问是没有问题了,但是点击登陆又是 404,真是问题一个接一个

把 enable-php.conf 修改为下面这个配置 然后重启 nginx 服务即可

 location ~ [^/]\.php(/|$)
{
        #try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        include pathinfo.conf;
}

一波骚操作下来,并没有什么用,问题还是没有解决。我是真的睡不着,继续在度娘中寻找着。。。功夫不负有心人,我又找到一些相关帖子。

地址1 :https://bbs.vpser.net/thread-12837-1-1.html
地址2 :https://www.jsoo.cc/820168.html
地址3 :https://www.jianshu.com/p/18d2a24f2718

没错,他们都是相互之间抄一抄,但是按照他们的方法我的问题还是没有解决。

解决

在我忙忙碌碌了几个小时后,我终于解决了这一问题。

原文地址 :https://www.polarxiong.com/archives/typecho-404-error.html

文章上写的比较复杂,可能是搭建环境不一样,我只是实现了一步操作就解决了该问题。

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

在我把代码写在配置文件中的时候,意外又出现了!!!

QQ截图20210704162300.png

给我显示了一个网站创建成功的页面,想一想不可能啊。

捕获1.JPG

我仔细查看了代码并对其做了位置调换,终于成功解决了这个问题!不容易啊,哈哈。
#解决Typecho 文章/登录 404
if (-f $request_filename/index.php){
rewrite (.) $1/index.php;
}
if (-f $request_filename/index.html){
rewrite (.
) $1/index.html break;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

NCK@6W39Q4}H42%ZTL7N`MD.png

总结

大部分站长给出的结论是没有开启 phpinfo ,但是php7.2安装的时候就自动开启了phpinfo。这是因为Nginx对phpinfo支持不好导致的,需要自己手动添加地址重写代码。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值