快速总结:
- 主要影响
服务器如何解析请求和相对路径的解析方式。- 加
/代表访问的是目录;不加/代表访问的是文件
加 / 和不加 / 影响服务器如何解析请求
- 以
/结尾的URL,表示目录: 例如https://example.com/blog/表示的是请求blog目录下的默认文件,一般是/blog/index.html(默认文件) - 不以
/结尾的URL,表示文件; 例如https://example.com/blog表示访问的是/目录下的blog文件,即/blog这个文件。 那假如没有blog文件,但有blog目录的话,服务器可能会301重定向到https://example.com/blog/index.html中。
加 / 和不加 / 影响相对路径的解析方式
浏览器会根据是否有
/来判断访问的是目录还是文件,然后据此去解析resource的相对路径。
假设有一个resource关联的文件是相对路径的,例如<img src="image.jpg">。
- 访问以
/结尾的URL,https://example.com/blog/: 该resource在服务器中的解析后的路径为/blog/image.jpg。 因为blog/表示的是一个目录,所以该resource的相对路径代表的是该blog目录下的image.jpg文件。 - 访问以不以
/结尾的URL,https://example.com/blog: 该resource在服务器中的解析后的路径为/image.jpg。 因为blog表示的是一个文件,所以该resource的相对路径代表的是与该blog文件同级的目录中的image.jpg文件。
SEO最佳实践
- 搜索引擎会将
/结尾的URL识别为目录 - 建议保持URL形式的一致性(要么都带/,要么都不带)
- 示例对比:
- 规范形式:example.com/category/
- 不规范形式:example.com/category
- 在服务器的目录下,尽量保证不要出现同名的目录和文件
API规范
对于网站提供的API接口,需要参照API文档的规范,否则可能出现拒绝访问或非预期结果的可能。
总结对比
| URL 形式 | 解析对象 | 具体结果 |
|---|---|---|
https://example.com/blog/ | 目录 | 通常返回 blog/ 下的默认文件(如 index.html),相对路径解析基于 blog/。 |
https://example.com/blog | 资源(或重定向到目录) | 可能被解析为文件,或服务器重定向到 blog/目录下的默认文件,相对路径解析可能发生非预期结果 |