概述
不同服务器、虚拟主机环境配置方式各不相同,本文分别针对 Nginx、Apache、IIS 环境提供伪静态配置,实现隐藏 URL 里的index.php入口。
配置完成后务必登录网站后台清除系统缓存;ECS 云服务器环境需要重载或重启 Web 服务,让重写规则生效。
IIS 服务器
- 查看网站根目录是否存在
web.config配置文件; - 已有文件:将下面的重写规则片段,粘贴到
<system.webServer>与</system.webServer>标签中间; - 无文件:直接复制全部代码,保存为
web.config,上传至网站根目录。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="OrgPage" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(.*)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
上传完成后,后台清除缓存,访问网站首页验证效果。

Nginx 服务器
① 网站部署在站点根目录
将如下规则添加到站点 nginx 配置中:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
② 网站部署在二级目录
location / {
if (!-e $request_filename) {
rewrite ^/([^\/]+)/(.*)$ /$1/index.php?s=/$2 last;
break;
}
}
③ 同一虚拟主机,根目录、二级目录均安装 EyouCMS
注意:不要重复写两个
location / {},合并到同一个配置块内
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
if (!-e $request_filename) {
rewrite ^/([^\/]+)/(.*)$ /$1/index.php?s=/$2 last;
break;
}
}
配置保存后重载 Nginx 服务。
Apache 服务器
Apache 环境默认可自动隐藏
index.php入口;如果 URL 仍显示 index.php,请检查根目录.htaccess文件。
.htaccess完整参考代码:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
# http强制跳转https可按需开启
# RewriteCond %{HTTPS} !=on
# RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>
异常排查
配置后入口文件依旧无法隐藏,依次尝试修改规则最后一行,二选一替换测试:
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
如修改后仍然无效:确认 Apache 已开启rewrite_module重写模块,修改配置后重启 Apache 服务。
配置完成验证
- 服务器配置规则保存、重载服务;
- 登录 EyouCMS 后台,清除系统缓存;
- 浏览器访问网站首页,确认 URL 不再携带
index.php; - 如浏览器缓存干扰,可清除浏览器缓存或使用无痕模式访问。
其他类型 Web 服务器,请自行搜索对应环境的 URL 重写配置方案。
