typecho去掉index.php
# 一、前言
大家好,我是尝试中成长 (opens new window)的站长,最近在使用typecho的过程中遇到了这种问题,index.php的伪静态没办法去掉,遂浏览器搜索了很多教程,本身不是很懂伪静态的配置,所以尝试了很多教程,由于有使用CDN,所以每次改完都会等CDN一会,其实是不需要的,然后就这样僵持了好久,这里提供宝塔的配置过程,很简单的。
# 二、配置过程
刚开始我觉得我这个问题应该很简单,搜索了一下 typecho 去掉 index.php,然后就有一大波教程出来了
总结一下几种方法,好像都是有效的
直接改nginx的配置文件
在配置文件下找
添加以下代码到上图的位置上
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
2
3
最后记得重启nginx才能生效,不然你看不到效果。
然后typecho这边也得配置一下重写,然后就可以了。如果服务器未配置,不能正常访问
但是我在尝试了这种方案之后,我试了一下,好像正常访问文章确实没有了,但点击导航栏的网站链接好像又有了,就像下图
访问文章又是正常的
我就在想会不会是cdn的问题,这个导航是静态链接,cdn没改,于是去刷新了一波cdn的缓存,然后我等了5分钟
5分钟过去了还是一样,于是下一个方案。
直接配置在宝塔的伪静态
这是一个个人站点寒光博客 (opens new window)
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; } }
1
2
3
4
5
6
7
8
9
10
11
12在做之前应该先把上面的配置重置。就这样我再次重复上面的操作,30分钟过去了,我的内心此时相当复杂,&#&&?#差点骂出来了
然而还是这个问题,这个方案pass,下一个,耐力-99
用宝塔nginx自带的配置
这是方法中最简单的,简单点一下就完事了,还有一个typecho2是以typecho为首页的,就像abc.com/typecho,当然正常就不用了。
cdn刷新加上一系列操作又过去了15分钟,还是一样,我当时真想把电脑砸了,不过还好这次有所收获,就是不加index.php这个界面仍然可以访问。太困了,去睡了一觉。
# 三、问题所在
一觉起来,恍然大悟,是主题的问题,外观设计我用的自定义栏,写的是固定链接,怀有感恩之心,不然作者此时应该打一下喷嚏。主题是cuteen (opens new window)主题相当的漂亮和美观。小丑竟是我自己。
# 四、解决方案
上面介绍的三种方法都是可行的,我个人还是推荐第三种,最简单的一种。如果一开始就知道的话,我应该是5分钟搞定。其实cdn也不需要刷新,这个配置是从数据库读取的,跟cdn没有一点关系。
# 五、一点体会
说实话,我本来是不想写这么多的,但很多时候,我们就非常有可能被这种看似非常小的问题给困扰好几个小时,所以我把自己踩坑的过程写了下来,正如网站创建的初心,在尝试中成长 (opens new window).总结以下几点。
- nginx配置重新刷新需要重载或者重启。
- 宝塔真的很方便,它的伪静态设置应该是嵌入nginx配置中的,不需要重新配置。
- 主题还是得优先看看主题的配置
- 网站变“美”之路仍需努力