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

HTaccess配置求助:exemple.net重定向至https://www.exemple.com失败

解决exemple.net重定向到exemple.com的.htaccess配置问题

我来帮你搞定这个重定向的问题,你的原配置里有几个关键错误,导致访问exemple.net时跳转到了404页面,咱们一步步修正:

原配置的核心问题

  • 变量使用错误:你用了%{REMOTE_HOST},这个变量是访问者IP对应的主机名,不是用户请求的域名!应该用%{HTTP_HOST}来匹配用户实际访问的域名。
  • 规则顺序混乱:域名重定向的规则必须放在最前面,不然其他规则(比如自动加.php后缀的规则)会先执行,可能触发404后才走重定向流程。
  • 重定向规则不完整:没有保留用户请求的路径和查询参数,也缺少L标志(停止后续规则执行),导致后续规则继续运行引发错误。

正确的.htaccess配置

# 开启URL重写引擎
RewriteEngine On

# 1. 优先处理所有exemple.net的请求(带www或不带),重定向到https://www.exemple.com,保留路径和参数
RewriteCond %{HTTP_HOST} ^(www\.)?exemple\.net$ [NC]
RewriteRule ^(.*)$ https://www.exemple.com/$1 [R=301,L,QSA]

# 2. 处理exemple.com的非www跳转,强制转到带www的HTTPS地址
RewriteCond %{HTTP_HOST} ^exemple\.com$ [NC]
RewriteRule ^(.*)$ https://www.exemple.com/$1 [R=301,L,QSA]

# 3. 强制所有www.exemple.com的请求使用HTTPS(防止用户通过HTTP访问)
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.exemple\.com$ [NC]
RewriteRule ^(.*)$ https://www.exemple.com/$1 [R=301,L,QSA]

# 4. 隐藏.php文件后缀(仅当对应的.php文件存在时才生效)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# 5. 设置404错误页面(建议用相对路径,避免潜在的重定向循环)
ErrorDocument 404 /404.php
# 如果你的404页面是不带.php的路径(比如已经通过上面的规则处理),可以用:
# ErrorDocument 404 https://www.exemple.com/404

配置说明

  1. 域名重定向优先:先把所有.net的流量直接导去.com的HTTPS地址,确保旧域名的访问不会触发其他规则。
  2. HTTPS和www统一:确保所有.com的访问都强制使用HTTPS和www前缀,符合你的需求。
  3. 安全的PHP后缀隐藏:加了两个条件,只有当请求的不是目录、且对应的.php文件真实存在时,才会自动加上后缀,避免不存在的路径触发错误。
  4. 404页面优化:用相对路径可以避免如果404页面本身配置出错导致的循环重定向问题。

测试注意事项

因为301是永久重定向,浏览器会缓存旧的重定向规则,测试前记得清空浏览器缓存,或者用隐私模式访问测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:14:23