域名根目录不是某个固定路径,而是你在服务器或虚拟主机上指定的一个文件夹,所有通过该域名访问的文件都放在这里。新手搞不清它,通常是因为被“根目录”这个词误导了它并不是服务器的C盘根目录,也不是什么系统核心目录,就是一个普通的业务文件夹。
网站根目录到底在哪?先分清这几种常见场景
你问“根目录在哪”,答案取决于你用的是哪种建站方式,行业里没有统一路径,但九成以上新手遇到的都是下面三种场景。
虚拟主机上的根目录:通常是wwwroot或htdocs
如果你买的是共享虚拟主机(就是那种几百块一年的),控制面板里一般会有一个FTP根目录或网站主目录,常见名称包括:
/wwwroot(简米云虚拟主机、酷番云虚拟主机常用)/htdocs(部分香港主机、国外主机沿用老习惯)/www或/web(个别面板自定义)
登录FTP工具后,你默认进入的文件夹往往就是根目录,有个判断技巧:看看里面有没有index.php或index.html文件,有的话基本就是根目录。
云服务器上的根目录:取决于你装的网站环境
用云服务器建站,根目录位置由Web服务器软件决定,行业主流环境是宝塔面板、LNMP、LAMP,对应路径很固定:
- 宝塔面板:默认网站根目录在
/www/wwwroot/你的域名,/www/wwwroot/example.com - LNMP一键包:默认根目录在
/home/wwwroot/你的域名 - 手工编译的Nginx或Apache:看配置文件里的
root或DocumentRoot指令,没有固定位置
这里有个新手常犯的错:以为删掉域名文件夹里的内容就清空了网站,结果误删了同目录下其他站点,所以用云服务器时,先确认自己在哪个绝对路径下再动手。
本地调试时的根目录:软件自带的项目文件夹
如果你在电脑上建站测试,比如用phpstudy、XAMPP、WAMP,根目录就是软件安装目录下的特定子文件夹,例如phpstudy的WWW目录,XAMPP的htdocs目录,这时候访问localhost,就是那个文件夹里的内容。
新手怎么找到域名根目录?三种方法直接对照操作
不要凭感觉猜路径,下面三种方法任选一种,按步骤走就能找到。
在宝塔面板里两秒定位(推荐)
宝塔面板是目前国内服务器使用率较高的管理工具,操作路径非常直观:
- 登录宝塔面板后台
- 左侧菜单点击网站
- 找到你要查的域名那一行
- 点击“根目录”按钮,面板会自动打开文件管理器并定位到该域名的根目录
看面板上的绝对路径,通常在/www/wwwroot/下面,以域名命名,如果站点绑定了子域名,比如
blog.example.com,它会独立放在/www/wwwroot/blog.example.com文件夹里。注意:域名和根目录是一一对应的,不要拿A站点的文件去套B站点的路径。
看网站配置文件(适用Nginx/Apache)
没有面板的情况下,直接查配置最准,以Nginx为例:
- 配置文件通常在
/etc/nginx/conf.d/或/usr/local/nginx/conf/vhost/目录下 - 文件名一般以域名命名,比如
example.com.conf - 打开文件,找到
server {}块里的root字段
比如root /home/wwwroot/example.com;,那这个路径就是域名根目录,Apache用户则查httpd.conf或虚拟主机配置文件里的DocumentRoot字段。
用FTP工具连上看连接后的初始文件夹
使用FileZilla或FlashFXP等FTP工具连接主机后,右侧远程站点显示的初始文件夹,多数情况就是根目录,但有个例外:部分主机商把初始目录设置为上一级,里面还有一个单独的子目录才是真正的根目录,这时看控制面板里的“网站目录”或“域名管理”提示,以那里的说明为准。
域名绑定目录和根目录是一回事吗?区别要搞清
域名绑定目录是你在服务器上指定的、用来接收该域名请求的文件夹,它和根目录指同一个东西,但实际使用中,有几种情况容易混淆:
子目录绑定的陷阱
有些人买云服务器后,喜欢把网站文件放在/home/wwwroot/example.com/blog这样的子目录里,然后在面板里把域名直接绑定到这个子目录,这样做可以让不同域名共用一台服务器,但访问主域名时就只显示博客内容,其他页面全部404。
行业共识认为,根目录应该从你站点入口文件所在层级算起,如果你访问example.com直接打开的是blog子目录里的内容,那blog就是该域名的根目录,而不是example.com这个文件夹。
默认首页文件决定你能看到什么
根目录下通常需要存在index.php、index.html或default.php等默认首页文件,如果你把文件上传到根目录,但访问域名时一直显示目录列表或404,检查一下默认首页设置是否包含你上传的文件名。
换了域名或搬家后,根目录路径变了怎么办
域名更换或网站搬家,是新手最容易在根目录上栽跟头的时候。
路径变了对URL的影响
假设原来根目录是/www/wwwroot/old.com,搬家后改成/www/wwwroot/new.com,如果你直接修改了域名绑定,但数据库里的绝对路径没更新,后台会无法访问,前台也会报错,这时候需要到数据库的wp_options表(以WordPress为例)里,把siteurl和home两个字段改成新域名对应的完整URL。
用wp-config临时改路径的小技巧
很多用WordPress建站的用户,遇到搬家后无法登录后台的情况,可以在根目录的
wp-config.php文件里加上这两行:
define('WP_HOME', 'http://new.com');
define('WP_SITEURL', 'http://new.com');
保存后重新访问后台,登录后到常规设置里再把地址改回来,然后删掉这两行代码,这个操作直接证明了根目录文件对站点配置的控制力你找不到根目录,就改不了这些文件。
WordPress网站根目录在哪里?已安装和未安装情况不同
WordPress用户数量大,提问也多,单独说说这个场景。
未安装时的根目录就是你上传安装包的位置
如果你刚买完域名主机,准备装WordPress,那么你上传WordPress压缩包并解压的那个文件夹,就是以后的根目录,解压后里面应该有wp-admin、wp-content、wp-includes三个文件夹,以及wp-config-sample.php等文件。
已安装状态的根目录判断标准
网站正常运行后,根目录就是存放以上那些文件的位置,有个快速确认方法:在浏览器地址栏输入你的域名/wp-admin,能打开登录页,就说明根目录下存在wp-admin文件夹,如果你看到的目录结构完全不一样,可能你的WordPress安装在子目录里,这时点击任意一篇文章,看看URL是否带子目录前缀。
多站点子目录模式下的根目录
WordPress多站点开启子目录模式时,全站文件其实就一套,根目录还是一个,但访问/site1时,请求会映射到同一个文件夹里不同表前缀的数据,这种情况下,根目录不会因为子站点而变化,别为了找子站点的“独立根目录”而创建子域名并重新安装,除非你确实需要独立权限。
虚拟主机后台显示的“根目录”和FTP看到的对不上怎么办
有相当一部分新手遇到这个问题:在虚拟主机控制面板里,明明写着根目录是/web,但用FTP登录后看到的却是/www下的文件,其实这不是对不上,而是你看到了不同层级的目录。
检查FTP登录账号的权限范围
虚拟主机厂商为了安全,会默认把FTP账号锁定在家目录下,比如你的主目录是/home/username,网站根目录是/home/username/wwwroot,FTP登录后直接显示/home/username,这时候你看到的不是根目录,需要进入wwwroot才是,别在/home/username下传文件,那样用户访问不到。
用“目录穿越”的常识判断
如果你实在不确定,可以试试在FTP软件中尝试切换到上一级目录(),如果显示“无权限”或者“操作失败”,说明你已经被锁定在允许的范围内,那么你一开始所在的初始目录很可能就是根目录,如果成功进入上级目录,看到wwwroot或public_html之类的文件夹,再进去看看里面有没有
index.php,有的话通常才是真正的根目录。
配置域名根目录时的三个高频致命错误
新手配置根目录,最常见的坑集中在路径写错、权限不对、缓存未清这三处。
把Windows路径习惯带进Linux
很多新手用Windows服务器时习惯D:wwwexample这种写法,但Linux服务器必须用正斜杠和绝对路径,比如/www/wwwroot/example.com,少了一个斜杠或把反斜杠写进去,网站直接502或403,配置时多检查一遍root字段,结尾不要加多余的斜杠,除非你明确知道自己在做什么。
权限设置过于开放或过于封闭
根目录的权限设置,业内通用规则是目录755、文件644,如果你把整个根目录给到777,确实能解决部分写入问题,但也给了黑客可乘之机,反过来,有些主机默认权限是600,导致Nginx无法读取文件,打开页面就是403 Forbidden,建议在宝塔面板里选中根目录,点击权限,设置为755并勾选“应用到子目录”,文件单独保持644。
修改了配置但忘了重载服务
改完Nginx或Apache配置文件后,必须执行重载操作才能生效,宝塔面板左下角有“重启Nginx”或“重载配置”按钮,命令行则敲nginx -s reload,如果改完路径后网站还是显示旧页面,先强制刷新浏览器,再检查网站缓存插件和CDN,最后才怀疑是不是路径没改对。
Q&A:域名根目录相关的三个高频问题
域名根目录可以随便改名称吗?
可以,但要同步修改网站配置文件里的root字段,以及数据库里可能存在的绝对路径设置,只改文件夹名称、不动配置,网站直接打不开,如果你用宝塔面板,在网站设置里修改根目录路径后,它会自动处理Nginx配置,相对安全,但WordPress这类动态站,还需要检查数据库中的siteurl选项是否包含了旧路径。
根目录下放多个网站文件会怎样?
会互相干扰,比如你在根目录放了a.html和b.html,默认访问的是index指定的文件,而不是自动显示列表,如果强行用example.com/b.html访问,理论上能打开,但这会造成URL结构混乱,也不利于搜索引擎收录,正确的做法是给每个子项目建立独立子目录,或者用子域名绑定不同根目录。
为什么我把文件传到根目录了,但访问域名还是默认页?
先确认你上传的是“文件”而不是“文件夹的压缩包未解压状态”,很多新手将WordPress安装包上传后忘记解压,在根目录看到的是一个wordpress文件夹,而不是那一堆文件,把文件夹里的所有内容移动到根目录层级,确保index.php直接在根目录下,再刷新访问,如果还不行,检查根目录下是否有.user.ini或.htaccess文件里的规则在拦截访问,这类隐藏文件往往被FTP软件默认过滤,需要开启显示隐藏文件才能看到。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/612760.html





