Typecho网站的伪静态处理

未经过伪静态处理的网址很冗长,包含了index.php/1.html,而我们只需要1.html,这样网址便显得简洁一些.

如果使用typecho1.2.1版本,进入Typecho后台-设置-永久链接,打开地址重写,选用自己喜欢的风格即可,无需修改nginx配置文件。
如果是1.2.1之前的版本,可能还需要在nginx的配置文件里添加下面代码:

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

nginx配置文件中的location指令是按照匹配顺序进行处理的,如果有科学上网的配置,要将科学上网代理设置的location块放在了伪静态设置的location块之前。这样,科学上网的请求将首先被处理,而不会被伪静态设置的location块捕获。

还可以尝试更复杂一些的配置:

1
2
3
4
5
6
7
8
9
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php) {
rewrite (.*) $1/index.php;
}
if (!-e $request_filename) {
rewrite (.*) /index.php;
}

第一条规则:如果请求的文件夹中存在index.html文件,则重写请求到该文件。
第二条规则:如果请求的文件夹中存在index.php文件,则重写请求到该文件。
第三条规则:如果请求的文件或文件夹不存在,则重写请求到index.php。
对于Typecho来说,第一种简化的配置已经足够。如果你遇到特定需求或问题,可以再考虑使用更详细的规则。


Typecho网站的伪静态处理
http://he.mk/2023/07/02/Typecho网站的伪静态处理/
作者
未必赢
发布于
2023年7月2日
许可协议