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

2023 年 7 月 11 日 星期二(已编辑)
/
482
1

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 站点的后台,设置“永久链接”选项为第一项(自选)

1689092337256.png

1689092337256.png

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

之后就可以清除服务器缓存和浏览器缓存测试了

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...