什么是网站目录结构
打开一个网站,什网地址栏里那串东西——example.com/blog/2024/03/web-design——就是站目目录结构的外在表现。它不是录结随便拼出来的,背后对应着服务器上一层层真实的什网文件夹,或者至少是站目逻辑上模拟出来的层级关系。你每敲一个斜杠,录结就是什网在告诉服务器:往下走一层。
我最早注意到这件事,站目是录结帮朋友排查一个网站加载慢的问题。他的什网图片全部堆在根目录下,首页引用了三十多张图,站目路径全是录结 /img1.jpg、/img2.jpg 这种。什网服务器返回请求时没有任何缓存分组的站目可能,浏览器只能一个个排队去拿。录结后来把图片按栏目分到 /images/products/ 和 /images/banners/ 下面,加载时间直接砍掉四成。目录结构不只是好看,它直接影响请求路径和缓存策略。
物理目录和逻辑目录,是两回事
很多人以为 URL 里的斜杠一定对应服务器上的文件夹。早期确实是这样,一个页面就是一个 HTML 文件,放在对应目录里。但现在大部分网站走的是路由机制。比如你用 WordPress 搭站,后台固定链接设成 /category/post-name,服务器上根本不存在那个叫 category 的文件夹,是程序在入口文件里解析 URL,再去数据库查内容。物理上可能所有文章都躺在同一张表里,逻辑上却呈现出清晰的层级。
这种分离带来一个好处:改结构不用搬文件。我见过一个做了七年的行业站,早期文章全在 /archives/123.html,后来想改成 /tech/xxx 这种语义化路径。如果是物理目录,得写脚本批量移动文件、改权限、处理死链。但因为用的是动态路由,改一下重写规则,旧链接 301 跳转过去就行,服务器上什么都没动。
扁平还是纵深,要看内容量
小站点适合扁平结构。一个个人博客,文章总数不到两百篇,全部放在 /posts/ 下面用 ID 区分就够了。点进去两步必达,用户不迷路,搜索引擎抓取也高效。但内容一多,扁平就撑不住。电商站几万个商品全堆在 /product/ 下,后台管理列表翻页翻到崩溃,用户想找“男装-衬衫-修身”得靠搜索框,目录本身失去了导航意义。
纵深结构解决分类问题,但层级别超过四层。我测过一些政府网站,点开一个办事指南要经过“首页-服务-个人服务-社保-养老保险-缴费-指南”六次点击,URL 长到换行。这种结构对爬虫不友好,对人也一样。三层以内是舒服的:频道、栏目、内容。再深就该考虑用标签或筛选器来横向关联,而不是继续往下切。
URL 里的目录结构会说话
看一个 URL 就能猜出网站的技术底子。?p=123 这种带参数的,多半是早期 CMS 没做伪静态;/2024/03/15/ 这种日期路径,说明内容按时间归档,适合新闻站但不适合教程站——你去年写的 React 教程,日期挂在 URL 里,用户点之前会犹豫是不是过时了。把日期换成 /guides/react/,心理感受完全不同。
还有个小细节:目录名用单数还是复数。 /product/123 和 /products/123 都有人用,但同一个站里最好统一。我见过一个站,导航链接写 /category/,图片路径写 /categories/,结果 CDN 缓存规则配错了,图片全部回源,带宽账单翻倍。这种错误不致命,但很烦人。
说到底,目录结构是给人和机器同时看的地图。人顺着它找路,机器顺着它理解内容之间的关系。你可以用技术手段把任意 URL 映射到任意内容,但一个清晰、稳定、有逻辑的目录,省下的是用户的耐心和爬虫的预算。下次建站,别急着写页面,先把那棵目录树画出来。
(责任编辑:休闲)
