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

如何配置Apache2将Redmine旧虚拟目录永久重定向至根域名?

解决Redmine URL重定向问题

问题根源

你的重写规则没生效,核心原因是规则写在了*:80的VirtualHost配置里,但用户实际访问的是HTTPS(*:443端口),规则根本不会被触发。另外,你之前写的规则也没覆盖所有带/redmine后缀的场景,还缺少永久重定向的标记。

正确配置方案

1. 定位443端口的VirtualHost配置

这是Let's Encrypt自动生成的HTTPS配置文件,一般在/etc/apache2/sites-available/目录下,文件名类似redmine.domain.com-le-ssl.conf。

2. 添加重定向规则

在该配置的RewriteEngine on之后,插入以下规则:

# 匹配/redmine及所有/redmine/xxx子路径,永久重定向到根域名
RewriteRule ^/redmine(/.*)?$ https://${REDMINE_SITE}$1 [R=301,L,QSA]

规则细节:

  • ^/redmine(/.*)?$:覆盖/redmine本身和/redmine/issues/1这类带子路径的请求
  • $1:保留原路径中/redmine之后的部分(比如/redmine/wiki会重定向到https://redmine.domain.com/wiki)
  • R=301:标记永久重定向,让浏览器自动更新书签缓存
  • L:终止后续重写规则,避免冲突
  • QSA:保留原URL的查询参数(比如/redmine?filter=open会重定向到https://redmine.domain.com?filter=open)

3. 重启Apache生效

执行命令:

sudo systemctl restart apache2

完整443端口配置片段示例

Define REDMINE_SITE=redmine.domain.com
<VirtualHost *:443>
    ServerName ${REDMINE_SITE}
    ServerAdmin admin@domain.com
    RailsEnv production
    DocumentRoot /opt/redmine/public

    <Directory "/opt/redmine/public">
            Allow from all
            Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    RewriteEngine on
    # 新增的重定向规则
    RewriteRule ^/redmine(/.*)?$ https://${REDMINE_SITE}$1 [R=301,L,QSA]

    # Let's Encrypt自动生成的SSL相关配置
    SSLCertificateFile /path/to/fullchain.pem
    SSLCertificateKeyFile /path/to/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:22:55