发布于2026-07-07 阅读(0)
扫一扫,手机访问
Cloudways 托管环境默认不启用 Apache 的 .htaccess 解析。这意味着,你把写好的 .htaccess 文件往项目里一丢,指望它自动生效?大概率会落空。很多人 ThinkPHP 伪静态在 Cloudways 上配置失败,根源就在这里。
Cloudways 用的是 Apache + PHP-FPM 架构,但出于安全和性能的考量,AllowOverride 默认被设为了 None。说白了,就是系统直接忽略了项目目录下的 .htaccess 文件。你写的规则再标准,也等于白写。
要解决这个问题,需要你手动操作一下:
RewriteRule,而是要把完整的 块覆盖进去。举个例子:Options Indexes FollowSymLinks AllowOverride All Require all granted
这里有个关键点:/applications/your-app-name/public 这个路径必须替换成你项目 public 目录的绝对路径(具体路径可以在 Cloudways 的 “Server Access” 页面查到)。
Cloudways 的 Web 根目录默认指向 public 子目录。但很多网上教程里给的规则,都是假设根目录就是入口。如果你直接套用,很可能导致 index.php 找错位置,或者出现循环重定向的问题。
正确的做法是:
.htaccess 文件是放在 public 目录下,而不是项目根目录。RewriteBase 必须显式声明,否则 $1 的匹配会出错:RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]RewriteBase / 表示当前 public 目录就是 Web 根目录,所有重写都基于这个路径。如果漏掉这行,访问 /user/login 时,系统可能错误地把它拼成 /public/index.php/user/login。https://site.com/myapp/),那么 RewriteBase 需要改成 /myapp/。同时,ThinkPHP 配置里的 app_host 和 url_domain_root 也要同步调整。如果你在 Cloudways 后台把应用类型从 “Apache” 切换到了 “Nginx”,那 .htaccess 就完全失效了,必须改用 Nginx 的原生规则。需要注意的是,Cloudways 的 Nginx 配置模板里默认没有 try_files 这一项。如果你直接照搬网上“if (!-e)”的写法,很容易触发 404 或者无限跳转。
正确的配置方法是:
location / 块内,**必须用 try_files 来替代 if**:location / { try_files $uri $uri/ /index.php?s=$uri&$args;}fastcgi_split_path_info,所以不需要额外配置 PATH_INFO 解析。route/app/index),要确保 s= 后面的参数格式与 pathinfo_depr 保持一致(默认是 /,不是 - 或 .)。说到底,真正卡住人的不是规则本身,而是 Cloudways 把 Apache/Nginx 的底层控制藏在了二级菜单里,并且默认关闭了最关键的 AllowOverride 和 try_files。改完配置不 restart、.htaccess 放错目录、RewriteBase 漏写——这三个点,几乎占了 90% 的调试时间。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8