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

URL含后缀时.htaccess重定向规则失效问题求助

修复.htaccess规则的方案

问题根源

你当前的规则里,RewriteRule ^/?$ ...仅匹配根路径(空路径或仅/),一旦URL里.net后面带了其他内容(比如/59forum或具体帖子路径),这条规则就不会触发,导致跳转失效。

修正后的完整规则

RewriteEngine On

# 1. 强制HTTPS + 去除www前缀(合并操作,减少跳转次数)
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

# 2. 将59sportfury.net的所有请求映射到59plymouth.net/59forum,保留原路径
# 根路径直接跳转至/59forum
RewriteCond %{HTTP_HOST} ^59sportfury\.net$
RewriteRule ^$ https://59plymouth.net/59forum/ [R=301,L]
# 非根路径:如果原路径没带/59forum则追加,已带则直接跳转
RewriteCond %{HTTP_HOST} ^59sportfury\.net$
RewriteRule ^(?!59forum/)(.*)$ https://59plymouth.net/59forum/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^59sportfury\.net$
RewriteRule ^59forum/(.*)$ https://59plymouth.net/59forum/$1 [R=301,L]

# 3. 处理59plymouth.net的请求,确保所有路径指向论坛目录
# 根路径跳转至/59forum
RewriteCond %{HTTP_HOST} ^59plymouth\.net$
RewriteRule ^$ /59forum/ [R=301,L]
# 非根路径:如果没带/59forum则自动追加前缀
RewriteCond %{HTTP_HOST} ^59plymouth\.net$
RewriteCond %{REQUEST_URI} !^/59forum/
RewriteRule ^(.*)$ /59forum/$1 [R=301,L]

规则说明

  • HTTPS+去www:把两个需求合并成一条规则,避免多次跳转,不管是HTTP还是带www的请求,都会直接跳转到不带www的HTTPS地址。
  • 域名映射:针对59sportfury.net的所有请求(含子路径),都会正确跳转到59plymouth.net/59forum下的对应内容,不会重复添加/59forum前缀。
  • 论坛路径强制:确保59plymouth.net的所有请求最终都指向/59forum目录,不管用户输入的是根路径还是其他子路径。

迁移到httpd.conf的注意事项

  1. 规则建议放在对应域名的<VirtualHost>块内,确保只针对目标域名生效。
  2. 无需添加RewriteBase(httpd.conf中基于服务器根目录的绝对路径匹配)。
  3. 路径匹配模式需调整为绝对路径格式,比如原.htaccess里的^$对应^/$。
  4. 确保虚拟主机配置中开启了RewriteEngine On,无需依赖.htaccess的AllowOverride设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:18:13