核心要点
- 文件位置:
.htaccess文件必须位于你网站的根目录(public_html或www)中,如果你想重定向根目录下的一个文件,它就在这里,如果你想重定向子目录下的文件,它也需要在根目录中。 - 语法清晰:确保语法正确,特别是空格和引号。
- 备份:在修改
.htaccess之前,务必备份一份原始文件,以防修改出错导致网站无法访问。
重定向单个文件(最常用)
这是最直接的情况,比如将 old-page.html 永久重定向到 new-page.html。

(图片来源网络,侵删)
场景:
- 旧页面:
https://www.yourdomain.com/old-page.html - 新页面:
https://www.yourdomain.com/new-page.html
代码:
将以下代码添加到你的 .htaccess 文件中:
# 将旧页面永久重定向到新页面 Redirect 301 /old-page.html https://www.yourdomain.com/new-page.html
代码解释:
Redirect 301:指定进行 301(永久)重定向。/old-page.html:这是相对于网站根目录的旧文件路径,即使访问者输入yourdomain.com/old-page.html,服务器也能正确找到。https://www.yourdomain.com/new-page.html:这是完整的新 URL 地址。强烈建议使用完整的 URL,以避免因域名解析问题导致重定向失败。
重定向到域名根目录(首页)
如果你想将一个旧页面直接重定向到网站的主页。
场景:
- 旧页面:
https://www.yourdomain.com/old-article.html - 新页面:
https://www.yourdomain.com/(网站首页)
代码:
# 将旧页面永久重定向到网站首页 Redirect 301 /old-article.html https://www.yourdomain.com/
或者

(图片来源网络,侵删)
# 将旧页面永久重定向到网站首页 (结尾的斜杠可选) Redirect 301 /old-article.html https://www.yourdomain.com
使用 mod_rewrite (更灵活、更强大)
Redirect 指令简单直接,但功能有限。mod_rewrite 是 Apache 的一个强大模块,可以实现更复杂的重定向规则,虽然对于单个页面有点“杀鸡用牛刀”,但它是处理重定向问题的标准做法,尤其在未来规则变复杂时更具扩展性。
场景:
与方法一相同,将 old-page.html 重定向到 new-page.html。
代码:
将以下代码添加到 .htaccess 文件中:
# 启用 mod_rewrite 引擎 RewriteEngine On # 定义重定向规则 # 规则说明:如果请求的路径是 /old-page.html,则进行 301 重定向 RewriteRule ^old-page.html$ https://www.yourdomain.com/new-page.html [L,R=301]
代码解释:

(图片来源网络,侵删)
RewriteEngine On:开启 URL 重写引擎,这通常是.htaccess中重写规则的第一行。RewriteRule:定义一条重写规则。^old-page.html$:这是一个正则表达式。^表示字符串的开始。- 表示字符串的结束。
- 这个模式精确匹配
old-page.html这个路径,不会匹配/old-page.html/或其他类似路径。
https://www.yourdomain.com/new-page.html:匹配成功后,跳转到的目标 URL。[L,R=301]:这是规则的标志。R=301:表示执行一个 301 重定向。L:表示如果这条规则被匹配,则停止处理后续的 RewriteRule 规则。
重要提示:www 和 https 的规范化
在设置重定向时,最好同时考虑域名带 www 和不带 www 以及 HTTP 和 HTTPS 的统一性问题,否则,你可能会创建多个重复的内容版本,不利于 SEO。
我们建议将所有流量统一到 https://www.yourdomain.com。
你可以将以下代码放在 .htaccess 文件的最顶部,确保它在你的单页面重定向规则之前执行,这套代码会强制将所有非 www 和非 https 的请求都规范化到 https://www.yourdomain.com。
# 1. 强制使用 HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 2. 强制使用 www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
注意:上面的两段代码可以合并,但为了清晰,这里分开展示,在实际使用中,确保 RewriteEngine On 只出现一次。
完整示例
假设你的网站是 www.yourdomain.com,你想将 about-us.html 重定向到 about.html,并且希望整个网站都强制使用 https://www。
你的 .htaccess 文件内容应该是这样的:
# =================================================================
# 1. 规范化域名和协议 (强制 www 和 https)
# =================================================================
# 启用重写引擎
RewriteEngine On
# 如果不是 HTTPS,则重定向到 HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# 如果不是 www,则重定向到 www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# =================================================================
# 2. 单个页面 301 重定向
# =================================================================
# 这里使用 mod_rewrite 方式,因为它更灵活
# 将 /about-us.html 重定向到 /about.html
RewriteRule ^about-us\.html$ https://www.yourdomain.com/about.html [L,R=301]
# 你也可以在这里添加其他的 Redirect 301 指令
# Redirect 301 /another-old-page.html https://www.yourdomain.com/some-new-page.html
如何验证?
设置完成后,你可以使用以下工具来验证重定向是否正确:
- 浏览器地址栏:直接输入旧页面地址,看是否跳转到新页面,并且浏览器地址栏的 URL 是否正确。
- 在线检查工具:
- Redirect Checker (https://redirectchecker.com/)
- SEOmofo's Redirect Path (Chrome 浏览器插件)
- 这些工具会清晰地显示重定向的链路和状态码(必须是
301)。
希望这份详细的指南能帮助你成功设置单网页的 301 重定向!
