您现在的位置是:百科 >>正文
web根目录
百科63人已围观
简介打开浏览器,输入一个域名,页面蹦出来。这背后第一步,服务器得先找到文件。文件放在哪儿?web根目录。 这个词听起来像某种地下室入口,实际上它就是网站文件存放的起点。你可以把它理解成一栋楼的入户大堂—— ...
打开浏览器,目录输入一个域名,目录页面蹦出来。目录这背后第一步,目录服务器得先找到文件。目录文件放在哪儿?目录web根目录。
这个词听起来像某种地下室入口,目录实际上它就是目录网站文件存放的起点。你可以把它理解成一栋楼的目录入户大堂——访客从这儿进,所有的目录房间号都从这里开始编。服务器配置里,目录它常写作DocumentRoot,目录Apache的目录叫法;Nginx里则是root指令后面跟的那个路径。名字不同,目录意思一样:HTTP请求进来,目录服务器从这个目录开始找对应的文件。
我第一回正经接触这概念,是帮朋友搬一个WordPress站点。他把所有文件扔进服务器/var/www/html,访问首页正常,点进文章就404。折腾半天,发现他多套了一层文件夹——实际文件在/var/www/html/wordpress/下面。web根目录指错了,服务器在错误的位置翻找,当然找不到。这事让我记住了一个朴素的道理:根目录不是一个模糊的概念,它是一个确切的路径,服务器认死理。
路径拼接的规则
请求example.com/images/logo.png,服务器拿到/images/logo.png这段URI,把它接到web根目录后面。假设根目录是/var/www/site,那它就去读/var/www/site/images/logo.png。就这么直白。没有魔法,没有智能猜测。
这也解释了一个常见现象:为什么你放了个index.html在根目录,访问域名就能看到它。服务器默认会找目录下的索引文件,index.html、index.php、default.htm,按配置的优先级来。找不到索引文件,有些服务器会列出目录内容——这个行为挺危险的,等于把你文件夹里的东西全摊开给人看。生产环境里一般会关掉。
一个根目录,多个站点
共享主机上,一台服务器塞几百个网站是常态。每个站点有自己的web根目录,靠虚拟主机配置隔开。site-a.com的请求进/home/userA/public_html,site-b.com的请求进/home/userB/public_html。互不干扰。但如果配置写错,A站点的请求被指到了B的根目录,那乐子就大了——轻则显示别人的页面,重则泄露数据。
我见过一次这种事。某小公司的测试环境和生产环境共用一台服务器,web根目录配串了。测试域名访问到了生产库的静态资源,虽然没造成实际损失,但吓出一身冷汗。根目录的隔离,是服务器安全的基本盘。
别把敏感文件放进去
web根目录是公开区域。放在里面的文件,理论上任何人都能通过URL访问到。有些人把.env、config.php、数据库备份backup.sql直接丢在根目录下,以为没人知道文件名就安全。这叫“隐藏式安全”,靠 obscurity 吃饭,不靠谱。爬虫和扫描器天天在猜这些路径,/.env、/backup.zip,命中率不低。
正确的做法是:能通过URL直接拿到的文件,必须是你愿意给任何人看的。配置文件、日志、源码,放到web根目录之外,用程序去引用。Laravel把public作为根目录,其余代码在上一层,就是这个思路。WordPress没那么讲究,但至少别把备份文件留在根目录里。
结尾没什么好总结的
web根目录就是个起点。它决定了URL怎么映射到文件系统,决定了哪些东西能被公开访问。配对了,一切正常;配错了,404还是轻的。下次部署站点,花三十秒确认一下这个路径,比事后排查省事得多。
Tags:
上一篇:维护澳门
下一篇:商业银行典型风险案例
相关文章
青岛人才网官方网站
百科青岛人才网官方网站,网址是qdrc.com。这个域名不算好记,但青岛本地找工作的人基本都绕不开它。 我打开过这个网站不下五十次,帮朋友改简历、查招聘会、看政策补贴。说实话,它的界面设计还停留在五年前的 ...
【百科】
阅读更多高层次人才网
百科凌晨两点,我还在刷招聘网站。这不是夸张,是上周的真实经历。投出去的简历像石沉大海,偶尔弹出的“已查看”都让人心跳加速——然后就没有然后了。直到朋友甩来一个链接,说:“你试试这个。” 链接指向的是《高层 ...
【百科】
阅读更多qq盗号网站网址
百科我见过最嚣张的盗号网站,网址直接叫“qq安全中心-验证”。 不是那种一眼假的乱码域名,它用的是“qq安铨中心.cn”这种形近字把戏。你鼠标悬停上去,浏览器左下角显示的链接是“qq.com”开头的——他 ...
【百科】
阅读更多