Open utterances-bot opened 3 years ago
emmm. 大佬. caddy2 伪静态规则无法完美用于thinkphp6 (多应用模式)
/ 或者空域 访问index.php正常
*.yge.me {
root * /data/www/newblog/public
tls {
import dnspod_token
}
try_files {path} {path}/ /index.php?s={uri}
php_fastcgi 127.0.0.1:9000
file_server /static/*
}
如果这样用. 大部分地方都是对的.
唯一蛋疼翻页面
www.yge.me/?page=2
抛出404提示控制器不存在.
如果改成
try_files {path} {path}/ /index.php/{uri}
翻页能用了. 但是
这种路径无法正常解析(访问都是首页.)_
www.yge.me/category/blog.html
实际路径 www.yge.me/index.php/blog(应用名)/category(控制器)/index/cid(参数)/blog.html
和
www.yge.me/api
api应用.
这种多应用
调了很久.没搞定.
大佬麻烦研究下.caddy文档看不太明白...
你把thinkphp6 之前能用的配置文件发给我看看;另外,也把 caddy v2 目前的配置文件发给我看看。
好的,麻烦辛苦帮我看看.
原来caddy 1 配置文件
*.yge.me: {
root /data/www/newblog/public
tls {
dns dnspod
}
gzip
fastcgi / 127.0.0.1:9000 php
rewrite {
to {path} {path}/ /index.php/{uri}
}
}
tp6 各方面都非常正常,因为caddy1无法续签证书了,没办法迁移caddy2
现在caddy2 配置文件,我调了半天没搞定,百度了下,给结果到你blog 是参考你的.
*.yge.me {
root * /data/www/newblog/public
tls {
import dnspod_token
}
try_files {path} {path}/ /index.php?s={uri}
php_fastcgi 127.0.0.1:9000
file_server /static/*
}
file_server /static/* 这行必须加,不加前台静态文件无法显示.
总之大部分地方都是正常的. 就是无法获取翻页.
我博客现在一翻页就抛出404,提示控制器不存在. www.yge.me/?page=2
如果改
try_files {path} {path}/ /index.php?s={uri}
改成
try_files {path} {path}/ /index.php/{uri}
只是首页的翻页可用. 不过其他伪静态全部失效.
试一下这个看看。保留和删除/static/*
的情况都试一下
*.yge.me {
root * /data/www/newblog/public
tls {
import dnspod_token
}
@tp6_rewrite {
not file
path_regexp tp6_rewrite '(.*)'
}
rewrite @tp6_rewrite index.php/{re.tp6_rewrite.1}
php_fastcgi 127.0.0.1:9000
file_server /static/*
}
你好,还是不行.
这个效果 = try_files {path} {path}/ /index.php/{uri}
不知道是不是php_fastcgi 这里带了重写的代码.
我再研究研究.
保留你原来的 caddy v2 的配置。你在 thinkphp v6 的配置文件中,设置
'pathinfo_fetch' => ['ORIG_PATH_INFO', 'REDIRECT_PATH_INFO', 'REDIRECT_URL','REQUEST_URI'],
也就是增加 'REQUEST_URI'
如果问题还没解决,我也就没办法咧。
跟踪了下 服务器进程运行后自动生成的savejson文件 发现php_fastcgi 会自带rewirte.
经过反复测试总算解决了. 谢谢大佬~
*.yge.me {
root * /data/www/newblog/public
tls {
import dnspod_token
}
@tp6_rewrite {
not file
}
route {
file_server /static/*
rewrite @tp6_rewrite index.php/{uri}
}
@phpFiles {
#path *.php
}
reverse_proxy @phpFiles 127.0.0.1:9000 {
transport fastcgi {
split .php
}
}
}
@Y-A-K-E 厉害了,👍 。
Caddy V2 Caddyfile 配置 - IT & Laws
Caddy web服务器曾经以自动启用https、配置简单为卖点,caddy v1 深受欢迎;官方顺势退出 v2 系列,v2系列成功地把“配置简单”这个优点给去掉了,v1系列的Caddyfile文件不能直接用到v2系列。 官方最近已经完全取缔了 v1,因此,只能硬着头皮在ubuntu安装上 v2,最近觉得 v2 能替代
https://itlaws.cn/posts/2020/caddy-v2-caddyfile/