第一步:明确核心前提——确认3个前置条件
很多EyouCMS伪静态报错,根本不是代码的问题,而是下面3个硬性前置条件没满足,先逐个排查:
- 前置1:检查主机是否支持伪静态
如果是Nginx主机,进入宝塔/主机面板→软件商店→Nginx→设置→伪静态,看是否有默认规则选项;如果是Apache,检查根目录是否有.htaccess权限(Linux设755,Windows默认可读写),主机是否加载mod_rewrite模块(进入phpinfo()页面搜apache2handler,Loaded Modules里找mod_rewrite)。
- 前置2:后台开启伪静态开关
登录EyouCMS后台→系统→基本参数设置→核心设置→伪静态→勾选开启伪静态,静态后缀默认.html即可,点击保存。
- 前置3:清空所有缓存
登录后台→右上角清除缓存→全选所有缓存项→点击开始清除;如果是CDN/云WAF,也要额外在对应面板清除全站缓存。
第二步:常见主机场景的完整伪静态代码配置
前置条件都满足后,直接复制对应主机的完整、可直接生效的代码:
场景1:宝塔Nginx面板
操作步骤:进入宝塔→软件商店→Nginx→设置→伪静态→选择当前绑定的EyouCMS站点→清空原有代码→粘贴下面的代码→点击保存。
```nginx
if (!-e $request_filename) {
rewrite ^(.)$ /index.php?s=$1 last;
break;
}
```
注意:如果EyouCMS安装在子目录(比如根目录下的eyoucms文件夹),代码改成:
```nginx
location /eyoucms {
if (!-e $request_filename) {
rewrite ^/eyoucms/(.)$ /eyoucms/index.php?s=$1 last;
break;
}
}
```
场景2:Apache主机(.htaccess)
操作步骤:用FTP/宝塔文件管理器进入EyouCMS根目录→新建/编辑.htaccess文件→粘贴下面的代码→保存(Linux设权限755,Windows无需改)。
```apache
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.)$ index.php?s=$1 [QSA,PT,L]
```
子目录安装的Apache代码(比如eyoucms子目录):
```apache
RewriteEngine On
RewriteBase /eyoucms
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.)$ /eyoucms/index.php?s=$1 [QSA,PT,L]
```
场景3:IIS主机(web.config)
操作步骤:用FTP/宝塔文件管理器进入EyouCMS根目录→新建/编辑web.config文件→粘贴下面的代码→保存。
```xml
```
第三步:高频报错的针对性快速修复
如果配置完还是报错,按下面高频场景逐个排查修复:
报错1:首页正常,内页404/500
- 原因1.1:Apache/IIS的伪静态模块未生效
修复:Apache再次检查phpinfo()里的mod_rewrite是否Loaded;IIS检查是否安装URL Rewrite Module(下载地址:https://www.iis.net/downloads/microsoft/url-rewrite,选对应IIS版本的x86/x64安装包)。
- 原因1.2:后台伪静态规则未更新
修复:登录后台→系统→URL规则管理→点击右上角同步规则→再次全选清除缓存。
- 原因1.3:Nginx站点配置里没加root指令
修复:进入宝塔→网站→设置→配置文件→找到server块→确认root后面是EyouCMS的绝对根目录路径(比如/www/wwwroot/yourdomain.com),保存后重载Nginx。
报错2:打开页面显示“No input file specified”
- 原因2.1:PHP版本过高
修复:EyouCMS目前稳定支持PHP7.2-8.1,进入宝塔→网站→设置→PHP版本→切换到7.4/8.0,保存后重载PHP-FPM。
- 原因2.2:Nginx代码里缺少s参数
修复:检查Nginx伪静态代码,是否严格写成/index.php?s=$1,不要写成/index.php/$1(Apache/IIS同理,但大部分兼容)。
- 原因2.3:PHP配置里cgi.fix_pathinfo设为0
修复:进入宝塔→软件商店→PHP7.4/8.0→设置→配置文件→搜索cgi.fix_pathinfo→改为1→保存后重载PHP-FPM。
报错3:开启伪静态后静态资源(CSS/JS/图片)加载失败
- 原因3.1:模板里的资源路径是相对路径
修复:把模板里所有的、