Tomcat 8.5.82重写规则配置:旧域名请求转发至新域名
Tomcat RewriteValve 配置修正
你的当前rewrite.config配置存在几个问题,以下是修正后的正确配置方案:
错误分析
- Tomcat RewriteValve 的
RewriteRule默认匹配的是请求的URL路径部分(不含协议、域名),不能直接用完整的https://www.olddomain.com/(.*)格式匹配 [H]不是Tomcat RewriteValve支持的有效标志,你需要的是重定向类标志,比如临时重定向[R]或永久重定向[R=301]
正确配置
在/conf/rewrite.config中写入以下内容:
# 匹配请求的Host头为www.olddomain.com RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$ # 将所有路径重定向到新域名,保留原路径后缀 RewriteRule ^/(.*)$ https://www.newdomain.com/$1 [R=301,L]
配置说明
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$:检查请求的主机头是否为目标旧域名,确保只对该域名的请求生效RewriteRule ^/(.*)$ https://www.newdomain.com/$1 [R=301,L]:^/(.*)$:匹配域名后的所有路径部分(包括空路径),$1代表捕获到的原URL后缀内容[R=301]:发送301永久重定向响应,适用于域名永久迁移场景,可帮助搜索引擎更新索引[L]:表示这是最后一条规则,匹配后不再处理后续规则
验证步骤
- 保存
rewrite.config后重启Tomcat - 访问
https://www.olddomain.com/test/example,应自动跳转到https://www.newdomain.com/test/example
内容的提问来源于stack exchange,提问作者Aquib Kazi
相关产品推荐
相关产品推荐

