宝塔面板Nginx默认文档配置详解_index.php与index.html优先级与多站点设置
宝塔面板创建网站后,访问域名显示的是宝塔默认页而不是网站程序,或者输入域名后默认打开index.html而不是index.php,这些都是默认文档(Default Document)配置问题。本文详细讲解宝塔面板Nginx默认文档的配置原理、不同程序的推荐顺序、多站点独立配置、常见问题排查。
一、默认文档是什么。
当访问一个目录路径(比如`https://domain.com/`或`https://domain.com/subdir/`),不带具体文件名时,Nginx需要知道应该返回哪个文件作为默认页面。默认文档就是一个按优先级排列的文件名列表,Nginx按顺序依次查找,找到第一个存在的文件就返回。
Nginx的默认文档由`index`指令控制,宝塔默认配置: ```nginx index index.html index.htm index.php default.html default.htm default.php; ``` 这个顺序的含义是:优先找index.html,找不到找index.htm,再找不到找index.php,以此类推。
二、为什么PHP网站显示宝塔默认页。
宝塔创建站点时会自动在根目录生成一个`index.html`文件(内容是"恭喜,站点创建成功!")。当你上传了PHP网站程序(有index.php),根目录下同时有index.html和index.php,按默认顺序index.html在前,所以访问域名显示的是宝塔默认页,不是PHP网站。
解决方法(两步): 1. 删除宝塔默认index.html:宝塔"文件"-进入站点根目录-删除index.html。 2. 调整默认文档顺序:把index.php移到最前面。
三、修改默认文档顺序。
方法一:宝塔面板可视化修改(推荐)。 1. 登录宝塔,"网站"-找到对应站点-"设置"。 2. 左侧菜单选"默认文档"。 3. 输入框里按优先级顺序填写文件名,空格分隔。 4. PHP网站(PbootCMS、WordPress、Discuz)推荐: ``` index.php index.html index.htm default.php default.html default.htm ``` 5. 纯静态HTML网站推荐: ``` index.html index.htm default.html default.htm ``` 6. 点击"保存",Nginx自动重载配置。
方法二:直接修改Nginx配置文件。 1. "网站"-站点-"设置"-"配置修改"。 2. 找到`index`指令那一行(一般在server块开头)。 3. 修改顺序: ```nginx index index.php index.html index.htm default.php default.html default.htm; ``` 4. 点击"保存",Nginx自动重载。
方法三:命令行修改。 ```bash # 编辑站点配置文件 vim /www/server/panel/vhost/nginx/域名.conf # 找到index行修改 # 保存后重载Nginx nginx -s reload ```
四、不同网站程序的推荐默认文档顺序。
1. PbootCMS、WordPress、Discuz、ECShop、ShopXO等PHP程序: ``` index.php index.html index.htm ``` index.php必须在第一位,因为这些程序的入口是index.php。
2. 纯静态HTML网站(只有.html文件): ``` index.html index.htm ``` 不需要index.php,保持默认顺序就行。
3. ThinkPHP、Laravel等PHP框架(入口在public目录): - 网站根目录指向public子目录,public目录下的默认文档: ``` index.php index.html ``` - 同时需要配置pathinfo和伪静态规则。
4. 单页应用(Vue、React打包后的dist): ``` index.html ``` 只有一个index.html,所有路由由前端JS处理,需要配置伪静态把所有请求指向index.html: ```nginx location / { try_files $uri $uri/ /index.html; } ```
5. 混合网站(既有PHP又有静态HTML): - 根据首页是PHP还是静态决定顺序。 - 首页是PHP就index.php在前,首页是静态就index.html在前。
五、多站点独立配置。
宝塔面板每个站点的默认文档是独立配置的,不同站点可以设不同顺序。
1. 一个服务器上有PHP网站和静态网站,分别设置: - PHP站点:默认文档index.php在前。 - 静态站点:默认文档index.html在前。 2. 每个站点在"网站"-"设置"-"默认文档"里单独配置,互不影响。 3. Nginx全局默认配置在`/www/server/nginx/conf/nginx.conf`里的`index`指令,是全局默认值,站点配置里的index会覆盖全局值。一般不需要改全局,每个站点单独配就行。
六、子目录默认文档。
访问`domain.com/subdir/`时,Nginx会在subdir目录下按默认文档列表查找文件。
1. 如果子目录下有独立的网站程序(比如子目录安装了另一个CMS),子目录的默认文档和根目录一样,按站点配置的index顺序查找。 2. 如果子目录下只有静态HTML文件,默认找index.html。 3. 如果需要子目录用不同的默认文档,可以在Nginx配置里加location: ```nginx location /subdir/ { index index.php index.html; } ``` 4. 宝塔"网站"-"设置"-"子目录绑定"可以给子目录绑定独立站点,单独配置默认文档和PHP版本。
七、自定义默认页(访问域名跳转到指定页)。
有些网站需要访问域名时跳转到某个子页面,比如`domain.com`自动跳转到`domain.com/home/index.html`。
方法一:用index.php跳转。 在根目录创建index.php: ```php <?php header("Location: /home/index.html"); exit; ``` 默认文档index.php在前,访问域名执行这个PHP,自动跳转。
方法二:Nginx rewrite规则。 站点配置-"配置修改",server块内加: ```nginx rewrite ^/$ /home/index.html permanent; ``` permanent是301永久重定向,redirect是302临时重定向。
方法三:Nginx index指令直接指定。 ```nginx index /home/index.html; ``` 访问域名直接返回/home/index.html的内容,不是跳转。
八、常见问题排查。
问题1:改了默认文档还是显示宝塔默认页。 - 没有删除根目录下的index.html:去"文件"里删除。 - 改错了站点:确认改的是对应站点的设置,不是其他站点。 - 缓存:Ctrl+F5强制刷新,清CDN缓存。 - Nginx没重载:保存后确认Nginx重载成功,或手动`nginx -s reload`。
问题2:访问域名下载index.php文件(不执行PHP)。 - Nginx没有配置PHP解析,.php文件被当成静态文件下载。 - 检查站点配置里有没有`location ~ .php$`块,宝塔创建站点时默认会加,被删了需要重新加。 - 检查PHP版本是否安装并运行:"软件商店"确认PHP状态。 - 站点设置-"PHP版本"确认选了已安装的PHP版本,不是"纯静态"。
问题3:子目录访问403。 - 子目录下没有默认文档列表里的文件,且目录索引关闭,返回403。 - 检查子目录下有没有index.php或index.html。 - 或开启目录索引(不推荐,不安全):`autoindex on;`。
问题4:默认文档改了不生效。 - Nginx配置语法错误,保存时没生效。检查配置文件有没有语法错误:`nginx -t`。 - 有多个index指令冲突,后面的覆盖前面的。检查配置文件里所有index行,只保留一个。 - 浏览器缓存,Ctrl+F5刷新。 - CDN缓存,刷新CDN。
问题5:想让某个目录用不同默认文档。 - 在Nginx配置里加location指定目录的index: ```nginx location /api/ { index api.php; } ``` - 或在该目录下创建.htaccess(Apache)或单独的Nginx配置。
九、最佳实践。
1. PHP网站默认文档index.php在前,删除宝塔默认index.html。 2. 静态网站默认文档index.html在前。 3. 每个站点单独配置默认文档,不要依赖全局默认。 4. 改完默认文档后测试访问域名,确认显示正确页面。 5. 不要在默认文档里加太多文件名,3-5个就够,加太多影响查找效率。 6. 文件名注意大小写,Linux区分大小写,Index.html和index.html是不同文件。 7. 备份Nginx配置文件,改错了能恢复。
宝塔面板默认文档配置是基础操作,掌握index指令的优先级原理,就能解决"访问域名显示默认页"、"PHP不执行"等问题。核心是PHP网站index.php在前、删除默认index.html、保存后清缓存测试。不同网站程序按本文的推荐顺序配置,确保网站正常运行。

更新时间:2026-08-26 17:32:09
上一篇:如何修改网站后台的图片和文字_Logo更换_内容编辑_模板修改