生活、计算机网络、Galgame、发电(

Typecho 伪静态规则去掉链接中的 index.php

前言

typecho 默认的文章访问链接一般是这样的

https://www.jerryyang.link/index.php/archives/6/

链接有这个 index.php 感觉很不美观(强迫症)

解决


本文基于 1panel 面板、typecho1.2.1、OpenResty 和 Matcha 主题

首先我们打开站点域名的伪静态配置
添加下面的伪静态配置,就可以实现重写到新的 URL 格式,并且之前带有 index.php 的链接也会 301 重定向到新的格式上👍

# 根目录的定位块
location / {
    try_files $uri $uri/ /index.php?$query_string;
    # 尝试寻找与URI匹配的文件或文件夹,如果没有找到,则将请求传递给带有原始查询字符串的index.php页面
}

# 处理以/index.php结尾的请求的定位块
location ~ ^/index\.php$ {
    if ($args ~* "archives\/(.*)") {
        return 301 $scheme://$host/archives/$1;
        # 将参数中包含"archives/(*)"的请求重定向到新的URL格式:
        # $scheme://$host/archives/$1(使用捕获的组)
    }
    return 404;
    # 对于其他以/index.php结尾的请求,返回404错误
}

# 404错误页面的配置
error_page 404 /typecho/index.php?$query_string;
# 显示位于/typecho/index.php的错误页面,并将原始查询字符串作为参数传递

然后打开 typecho 后台,设置「永久链接」选项为第一项(自选)

在保存时可能会出现 重写功能检测失败, 请检查你的服务器设置 的报错,由于我们刚刚已经配置了伪静态,直接强制启用即可

之后就可以清除服务器缓存和浏览器缓存测试了(可看本站 URL )

Typecho 伪静态规则去掉链接中的 index.php

https://www.jerryyang.link/archives/40/

作者

Jerry

发布时间

2023-07-12

添加新评论