一、配置背景与目的
本文档适配BaDouCMS在宝塔面板「站点编辑-伪静态」功能,同时提供Nginx、Apache、IIS三种主流服务器的手动配置方案,覆盖不同部署环境需求。
二、宝塔面板傻瓜式配置步骤(推荐)
若使用宝塔面板管理服务器,可直接通过可视化操作完成配置,无需手动编写配置文件:
-
登录宝塔面板后台,在左侧导航栏找到「网站」模块,点击对应需要配置的项目站点后的「设置」;
-
在弹出的站点设置窗口中,切换到「伪静态」选项卡;
-
在伪静态规则下拉列表中,直接选择「ThinkPHP」选项;
-
点击「保存」按钮,宝塔面板会自动根据当前服务器环境(Nginx/Apache)配置对应的URL重写规则,配置立即生效。

三、手动配置方案(非宝塔面板/自定义需求)
若未使用宝塔面板,或需要自定义重写规则,可根据当前服务器环境(Nginx/Apache/IIS)参考以下手动配置步骤:
3.1 Nginx服务器配置
需在Nginx虚拟主机的 location / 配置块中添加重写规则,具体操作:
-
登录服务器,找到对应站点的Nginx配置文件(通常路径:/www/server/nginx/conf/vhost/站点域名.conf);
-
编辑配置文件,在 location / { ... } 块内添加以下规则(若已有其他代码,保留并插入规则):
location / {
# 省略原有其他配置代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
- 保存配置文件后,重启Nginx服务(命令:service nginx restart 或 宝塔面板内重启Nginx)。
3.2 Apache服务器配置
Apache配置需先启用重写模块,再配置规则文件,步骤如下:
-
启用mod_rewrite模块:
-
找到Apache的主配置文件 httpd.conf(通常路径:/usr/local/apache/conf/httpd.conf 或 宝塔面板「Apache设置-配置文件-主配置文件」);
-
查找#LoadModule rewrite_module modules/mod_rewrite.so,删除前面的 # 启用模块;
-
在配置文件中找到 AllowOverride None,将 None 改为 All(允许.htaccess文件生效)。
-
-
创建.htaccess规则文件:
-
新建文本文件,粘贴以下规则内容;
-
将文件命名为 .htaccess(注意前面的点不可省略);
-
将该文件上传至ThinkPHP项目的入口文件(index.php)同级目录下。
-
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
# 排除存在的文件和目录(避免重写静态资源)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# 重写规则:将所有非文件/目录请求转发到index.php
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
- 保存配置并重启Apache服务(命令:service httpd restart 或 宝塔面板内重启Apache)。
3.3 IIS服务器配置
IIS环境需根据版本选择对应配置方案,主要分为「ISAPI_Rewrite配置」和「web.Config配置」两种:
3.3.1 低版本IIS(支持ISAPI_Rewrite)
-
新建文本文件,粘贴以下规则内容;
-
将文件命名为 httpd.ini;
-
将文件上传至ThinkPHP项目根目录。
RewriteRule (.*)$ /index\.php\?s=$1 [I]
3.3.2 高版本IIS(7.0+,支持web.Config)
-
找到项目根目录下的 web.Config 文件(若不存在则新建);
-
在
- 节点中间,插入以下 节点规则。
<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>
四、配置验证与注意事项
4.1 验证方法
配置完成后,访问项目URL:将原本的 http://domain.com/index.php/模块/控制器/方法 改为 http://domain.com/模块/控制器/方法,若能正常访问页面,则配置生效;若出现404错误,说明配置未生效,需检查以下内容。
4.2 常见问题排查
-
Nginx:确认配置文件路径正确,重启Nginx后清除浏览器缓存再测试;
-
Apache:确认mod_rewrite模块已启用,.htaccess文件路径正确(与index.php同级),文件编码为UTF-8无BOM;
-
IIS:确认服务器已安装URL重写模块(可在IIS管理器中查看),web.Config/httpd.ini文件权限设置正确;
-
ThinkPHP版本:部分新版本ThinkPHP可能需要调整重写规则中的参数(如 s=/$1 改为 /$1),可参考对应版本的官方手册。
五、参考资料
更多ThinkPHP URL重写的高级用法,可访问ThinkPHP官方手册:https://www.thinkphp.cn/manual BadouCMS手册:https://doc.badoucms.com/












这一切,似未曾拥有