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

Ubuntu 22.04 Apache2根路径RewriteRule重定向失效求助

解决Apache2根路径重定向不触发的问题

问题原因

你的Rewrite规则RewriteRule ^$ https://www.google.com无法触发,核心原因是:

  • 当访问http://192.168.56.5时,浏览器实际请求的URI是/(根路径),而^$匹配的是空字符串(完全没有URI的场景,几乎不会在正常请求中出现),所以规则不匹配,直接跳过。
  • 随后Apache的默认索引机制(由DirectoryIndex控制)触发内部重定向,将/指向/index.html,此时URI变为/index.html,同样不匹配^$,因此也无法触发重定向。

修正方案(测试用:重定向到谷歌)

修改/etc/apache2/sites-available/000-default.conf中的Rewrite规则为:

LogLevel info ssl:warn rewrite:trace8
RewriteEngine On
# 精准匹配根路径 /
RewriteRule ^/$ https://www.google.com [R=302,L]
  • ^/$:正则表达式精准匹配URI为/的请求
  • [R=302]:标记为临时重定向(如果需要永久重定向可以用R=301)
  • [L]:表示这是最后一条规则,匹配后不再处理后续Rewrite规则

最终需求配置(重定向到/someplace_else/index.html)

如果需要将根路径/重定向到/someplace_else/index.html,根据需求选择两种配置:

1. 外部重定向(浏览器地址栏显示目标URL)

LogLevel info ssl:warn rewrite:trace8
RewriteEngine On
RewriteRule ^/$ /someplace_else/index.html [R=302,L]

2. 内部重写(浏览器地址栏保持为根路径,后台跳转到目标页面)

如果不想让用户看到URL变化,去掉R标记:

LogLevel info ssl:warn rewrite:trace8
RewriteEngine On
RewriteRule ^/$ /someplace_else/index.html [L]

验证步骤

修改配置后,执行以下命令重启Apache2生效:

sudo systemctl restart apache2

再次访问http://192.168.56.5,即可触发预期的重定向/重写逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 04:16:12