下面我将从核心原则、结构分析、不同场景下的最佳实践以及技术实现四个方面,为你详细解答如何设置网站URL。

核心原则:好URL的四大标准
无论你的网站是什么类型,一个优秀的URL都应该遵循以下四个原则:
-
用户友好
- 易于阅读和理解:用户看一眼URL就能大致猜到页面内容是什么。
- 易于记忆和分享:简洁的URL更容易被用户记住,也更方便通过口头或社交媒体分享。
- 避免特殊字符:尽量使用字母、数字、连字符()和下划线(
_),不要使用空格(会被编码为%20)、&, , , 等可能引起混淆的字符。
-
SEO友好
- 包含关键词:在URL中自然地融入页面的核心关键词,有助于搜索引擎理解页面主题。
- 简洁清晰:短而精的URL通常比长而复杂的URL更有优势,它传递了更权威的信号,也减少了“关键词堆砌”的嫌疑。
- 避免过多参数:像
...?id=123&category=5&user=abc这样的URL对搜索引擎和用户都不友好。
-
稳定性和可维护性
(图片来源网络,侵删)- 避免变动:一旦URL确定下来,就尽量不要轻易修改,如果必须修改,一定要做好301重定向,否则会导致用户访问失败和搜索引擎权重的丢失。
- 逻辑清晰:URL的结构应该有规律,方便未来添加新的页面和内容,使用
/category/post-name/的结构,添加新文章时只需遵循此模式即可。
-
一致性
- 全站统一:整个网站的URL结构风格应该保持一致,是使用连字符还是下划线
_,是使用小写还是大写,都应该有统一的规定。 - 规范协议和域名:确保
http://和https://的统一,以及www和非www的统一(通常通过301重定向实现)。
- 全站统一:整个网站的URL结构风格应该保持一致,是使用连字符还是下划线
URL结构分析
一个典型的URL可以分为以下几个部分:
https://www.example.com/blog/2025/10/10/how-to-set-urls
- 协议:
https://(或http://)。强烈推荐使用HTTPS,它更安全,也是搜索引擎排名的一个轻微正面因素。 - 子域名:
www。www是最常见的子域名,但也可以是blog、shop等,建议通过重定向将http://yourdomain.com和http://www.yourdomain.com统一到一种形式。 - 域名:
example.com,这是你网站的地址,独一无二。 - 路径:
/blog/2025/10/10/how-to-set-urls,这是最核心的部分,用于定位具体的资源,它通常由多个层级组成,用 分隔。 - 查询参数:
?id=123&sort=price,这部分用于向服务器传递特定信息,通常用于搜索结果、筛选、分页等动态页面。页面,应尽量避免使用查询参数作为URL的一部分。 - 锚点:
#section1,用于跳转到页面内的特定位置,它不会发送到服务器,对SEO没有直接影响。
不同场景下的最佳实践
内容网站/博客
这是最常见的场景,目标是清晰展示文章分类、日期和标题。

- 推荐结构:
/category/year/month/post-name/- 优点:结构清晰,包含日期信息,对SEO友好。
- 示例:
/seo/best-practices/2025/10/10/ultimate-url-guide
- 备选结构:
/category/post-name/- 优点:更简洁,不包含日期,适合内容更新频率高或不想让读者觉得文章“过时”的网站。
- 示例:
/seo/what-is-a-good-url
- 关键点:
- 小写字母:URL通常使用小写字母,因为服务器对大小写敏感,这可以避免404错误。
- 连字符 :推荐使用连字符作为单词分隔符,因为搜索引擎能更好地识别它,而下划线
_通常被视为一个整体单词。
电子商务网站
电商网站需要平衡产品信息、分类和用户体验。
- 推荐结构:
/product-category/product-name/product-sku/或/product-name/product-sku/- 优点:包含产品分类和具体产品名,SEO价值高。
- 示例:
/clothing/mens-blue-tshirt/MTS-001
- 备选结构:
/p/product-sku/- 优点:非常简洁,适合需要隐藏内部结构或使用大量动态参数的系统。
- 缺点:SEO价值较低,对用户不友好。
- 关键点:
- 避免动态ID:尽量不要使用
/product?id=123这样的URL。 - 处理变体:对于颜色、尺码等变体,可以通过筛选参数或独立的URL来处理,而不是把它们都塞进主URL。
- 避免动态ID:尽量不要使用
企业官网/服务页面
这类网站的重点是展示服务和公司信息。
- 推荐结构:
/service-name/或/service-name/location/- 优点:直接明了,易于理解。
- 示例:
/web-design/或/web-design/new-york/
- 关键点:
- 描述性命名:URL应该直接描述页面内容,
/about-us/、/contact/、/our-team/。
- 描述性命名:URL应该直接描述页面内容,
知识库/帮助中心
知识库的URL结构需要清晰反映文章的层级关系。
- 推荐结构:
/category/sub-category/article-title/- 优点:完美模拟了文件夹结构,用户可以轻松通过URL推断文章在知识库中的位置。
- 示例:
/guides/wordpress/permalinks-settings
- 关键点:
- 扁平化 vs. 深度:层级不宜过深,通常3-4层为佳,太深的结构(如
/a/b/c/d/e/)不利于用户和搜索引擎抓取。
- 扁平化 vs. 深度:层级不宜过深,通常3-4层为佳,太深的结构(如
技术实现
如何让你的网站URL变成上面所说的“友好”形式?这通常通过 URL重写 或 URL路由 来实现。
Apache服务器 (.htaccess)
在网站根目录下的 .htaccess 文件中配置 mod_rewrite 模块。
示例:将 article.php?id=123 重写为 /article/123
# 开启重写引擎
RewriteEngine On
# 设置网站根目录
RewriteBase /
# 规则:如果请求的是一个文件或目录,则不重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 规则:将 /article/123 这样的请求,内部转发到 article.php?id=123
RewriteRule ^article/([0-9]+)$ article.php?id=$1 [L,QSA]
示例:更友好的博客URL
RewriteRule ^blog/([0-9]+)/([0-9]+)/([0-9]+)/([^/]+)/?$ blog.php?year=$1&month=$2&day=$3&title=$4 [L,QSA]
Nginx服务器 (nginx.conf)
在Nginx的配置文件中,使用 rewrite 指令。
示例:将 article.php?id=123 重写为 /article/123
server {
# ... 其他配置 ...
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 将 /article/123 重写到 article.php?id=123
rewrite ^/article/([0-9]+)$ /article.php?id=$1 last;
}
CMS系统 (WordPress, Drupal等)
现代CMS系统通常都内置了强大的URL自定义功能。
-
WordPress:
- 进入 设置 > 固定链接。
- 选择“自定义结构”,然后输入你想要的格式,最常用的是
/%category%/%postname%/或/%postname%/。 - WordPress会自动处理
.htaccess文件的修改(需要服务器支持)。
-
Joomla:
- 进入 系统 > 全局配置 > 站点。
- 在“搜索引擎友好URL”选项中选择“是”。
-
Drupal:
- 安装并启用 Pathauto 模块,它可以根据内容标题、分类等自动生成友好的URL。
编程框架 (Django, Ruby on Rails, Laravel等)
这些MVC(模型-视图-控制器)框架普遍采用RESTful路由设计,让URL与控制器方法直接对应,天然生成整洁的URL。
-
Laravel (PHP): 在
routes/web.php中定义:Route::get('/blog/{post}', 'BlogController@show'); // 访问 /blog/my-first-post 会自动调用 BlogController 的 show 方法,并传递 'my-first-post' 参数 -
Django (Python): 在
urls.py中定义:path('blog/<int:post_id>/', views.post_detail, name='post_detail'),
| 原则 | 具体做法 |
|---|---|
| 用户友好 | 简洁、可读、可分享,避免特殊字符 |
| SEO友好 | 包含关键词,简短,避免过多参数 |
| 稳定性 | 一旦确定,轻易不变;修改时做301重定向 |
| 一致性 | 全站风格统一(大小写、分隔符) |
| 结构 | 域名/路径/查询参数,路径是核心 |
| 实践 | 内容站用/category/post/,电商站用/product-category/name/,企业站用/service/ |
| 技术 | 使用.htaccess(Apache)、Nginx配置或CMS/框架的路由功能 |
设置URL是一个需要深思熟虑的决策,它将伴随你网站的整个生命周期,一个好的URL策略能为你的网站打下坚实的基础。
