Ad astra per aspera

基于 Nginx 配置地址重写实现 Typecho 全站伪静态

Typecho 使用 PHP 编写,默认情况下 Typecho 文章 URL 会是形如yourdomain.net/index.php/sample.html的形式,视觉上繁冗复杂,也不利于搜索引擎收录,可以用地址重写功能实现伪静态化(本文以 Nginx 环境为例)。

在终端中输入:

nginx -t

通过回显确认 nginx 配置文件(nginx.conf)所在的路径并使用文本编辑器打开,在终端中输入:

vim /etc/nginx/nginx.conf


server{}块中写入地址重写规则:当客户端浏览器请求的文件并不实际存在于服务器上的情况下,Nginx 对地址进行重写,将请求的文件名附在/index.php后。

例如,客户端请求访问形如 yourdomain.net/sample.html,Nginx 发现实际上并不存在sample.html,就会把地址重写为 yourdomain.net/index.php/sample.html,这样就达成了伪静态的目的。

需要特别注意,如果启用了 HTTPS,这段配置就需要写在listen 443对应的server{}块中,如果没有启用 HTTPS,则需要写在listen 80对应的server{}块中:

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php$1 last;
}


保存退出,让 nginx 重新载入修改后的配置文件,回到终端中输入:

nginx -s reload


打开 Typecho 后台,进入“设置-永久链接”,启用地址重写功能并定义好路径,譬如我自定义文章路径为{slug}.html,也就是纯数字序号(可以在编辑文章时在标题栏下空文本框中手工填入),保存设置:

大功告成!

基于 Nginx 配置地址重写实现 Typecho 全站伪静态

https://liyuanzhe.net/5.html

作者

Metaphe

发布时间

2023-04-08

许可协议

CC BY-SA 4.0

本页的评论功能已关闭