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

求助:.htaccess实现非www域名全路径301重定向至www首页

非www域名全路径301重定向到www首页解决方案

问题背景

需将所有指向https://website.com(含任意子路径,如https://website.com/anything/anything.anything)的请求,通过301永久重定向到https://www.website.com首页,以传递外链权重,同时避免重定向循环问题。

原代码错误分析

你提供的代码存在以下问题,导致重定向循环:

  • 错误使用%{REQUEST_URI}判断完整域名:%{REQUEST_URI}仅匹配请求路径部分(如/xxx/xxx),无法识别域名,导致已在www.website.com下的请求仍触发重定向。
  • 拼写错误:规则中webiste应为website。
  • 使用临时重定向R=302:不符合传递外链权重的需求,需改为R=301。

正确解决方案代码

将以下代码替换原有内容,写入.htaccess文件:

RewriteEngine On

# 匹配非www的HTTPS域名请求,统一重定向到www首页
RewriteCond %{HTTP_HOST} ^website\.com$ [NC]
RewriteRule ^(.*)$ https://www.website.com [R=301,L]

代码说明

  • %{HTTP_HOST} ^website\.com$ [NC]:精准匹配非www的主域名,[NC]忽略大小写,兼容各类大小写域名请求。
  • RewriteRule ^(.*)$:匹配所有请求路径(包括根路径和任意子路径)。
  • R=301:标记为永久重定向,确保搜索引擎传递外链权重;L表示执行完此规则后停止后续规则解析,避免冲突。

可选:保留IP白名单测试规则

如果需要指定IP跳过重定向(方便自身测试),可添加白名单规则:

RewriteEngine On

# 允许指定IP跳过重定向(替换为你的实际IP)
RewriteCond %{REMOTE_HOST} ^000\.000\.000\.000$
RewriteRule ^ - [L]

# 非www重定向到www首页
RewriteCond %{HTTP_HOST} ^website\.com$ [NC]
RewriteRule ^(.*)$ https://www.website.com [R=301,L]

注意事项

  1. 确保服务器已启用mod_rewrite模块(Apache环境)。
  2. 测试前清除浏览器缓存(301重定向会被浏览器持久缓存)。
  3. 若使用Nginx环境,对应配置为:
server {
    listen 443 ssl;
    server_name website.com;
    # SSL证书配置(省略)
    return 301 https://www.website.com$request_uri;
}

内容的提问来源于stack exchange,提问作者Daniel Šimberský

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:45:49