You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过.htaccess实现example.com各类URL重定向至http://example.com?

没问题,这两个重定向需求都可以通过.htaccess文件完美实现,而且完全契合你提到的SEO友好要求——统一域名格式和协议是避免重复内容、提升静态URL权重的关键操作。下面分需求给你具体的实现代码和说明:

需求1:将无协议的example.com/path/file重定向至http://example.com/path/file

其实浏览器通常会自动为无协议的URL补全当前页面的协议,但如果是外部跳转过来的纯域名路径(比如example.com/path/file),我们可以通过规则强制统一为HTTP协议(如果需要HTTPS的话,只需要把代码里的http改成https即可)。

在你的.htaccess文件开头添加以下规则:

RewriteEngine On
# 匹配指定路径的无协议请求
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_URI} ^/path/file$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

如果你需要匹配example.com下的所有路径(而不仅仅是/path/file),可以简化成通用规则:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

这里的R=301是永久重定向,对SEO最友好——搜索引擎会把旧URL的权重完全转移到新URL上;L表示这是最后一条规则,匹配后不再执行后续规则。

需求2:统一所有域名前缀(含www)到http://example.com/*(无论是否带路径)

这个需求是为了避免搜索引擎将www.example.com和example.com视为两个独立站点,造成内容重复。我们需要把所有带www的请求,以及任何非http://example.com的请求,都重定向到对应的http://example.com路径下。

在.htaccess中添加以下规则(如果已经开启了RewriteEngine On,就不需要重复写了):

# 开启重写引擎(如果之前没开的话)
RewriteEngine On
# 匹配www开头的域名请求(不区分大小写)
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# 重定向到不带www的主域名,保留原路径
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

# (可选)如果有其他子域名(比如m.example.com)需要统一,取消下面两行注释
# RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

说明:

  • [NC]表示不区分大小写,比如WWW.Example.Com这类不规则输入也会被正确匹配;
  • 可选规则可以覆盖所有非example.com的主机头请求,适合有多个子域名需要统一的场景;
  • 同样使用R=301永久重定向,确保SEO权重的正确转移。

⚠️ 注意事项:

  • 确保你的Apache服务器开启了mod_rewrite模块(默认是开启的,如果没开需要联系主机商配置);
  • 修改.htaccess后务必测试所有场景,比如访问www.example.com/path、example.com/path/file等,确认重定向是否正常;
  • 如果之后需要切换到HTTPS,只需要把代码中的http://改成https://即可,规则逻辑完全不变。

内容的提问来源于stack exchange,提问作者Sejoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:41:47