未开启地址重写时状态
可以看到默认未开启地址重写时,不管是文章还是页面的访问地址中都会包含一层/index.php/,不管是创建还是后续访问都会有这个。对用户来说不是很友好,并且不利于搜索引擎优化。


1、调整nginx配置文件
这里nginx配置的作用是当请求的文件不存在时,将请求重写到index.php文件。
- if (!-e $request_filename):这是一个条件判断语句,它检查当前请求的文件是否存在。$request_filename是当前请求的文件路径。如果条件判断为真(即请求的文件不存在),则执行下面的指令。
- rewrite ^(.)$ /index.php$1 last;:这是一个重写指令,将请求的URI重写到/index.php文件。^(.)$是一个正则表达式,匹配请求的URI的全部内容,并将其作为参数传递给index.php文件。last表示停止匹配其他location块。
- 总结起来,当请求的文件不存在时,将请求重写到index.php文件,并将请求的URI作为参数传递给index.php文件进行处理。这通常用于实现前端路由,将所有请求都交给index.php文件进行处理和路由转发。
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}2、调整typecho设置
需要先配置好nginx伪静态配置然后再到typecho这里启用地址重写,否则点击保存设置时会报错。
登录 typecho 后台打开永久链接设置页面
点击 [启用] 地址重写功能,并在下方点击保存设置。

配置好后我们新开标签页去访问站点,就能看到链接中已经没有 /index.php/ 了,包括新增文章或页面时显示的地址也不会有 /index.php/ 了。


本文采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。
如果您的问题未解决,欢迎微信扫描右侧二维码与我联系。