修复在 Nginx 下 Typecho 伪静态对反向代理的无效问题
27
2024-03-13
如果您在 Typecho 启用了伪静态,并且在 Nginx 环境下配置了反向代理但不起作用,您可以尝试以下方法来解决这个问题。
起因
伪静态规则的优先级高于反向代理,因此网站程序的伪静态规则会直接拦截所有匹配的请求。
解决
为 Typecho 添加伪静态规则时,可以考虑添加一个判断条件,以便忽略需要进行反向代理的目录。
Typecho 默认的伪静态规则
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
若需忽略 test 目录的伪静态规则,可参照以下步骤进行编写。
if (!-e $request_filename) {
rewrite ^/(?!test)(.*)$ /index.php$1 last;
}
或
if (!-e $request_filename) {
rewrite ^(?!/test/)(.*)$ /index.php$1 last;
}
在应用之后,Typecho的伪静态规则不再对test目录产生影响,同时,针对test目录的反向代理也被忽视了。😊
- 0
- 0
-
分享