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

配置Apache HTTPD反向代理:仅重定向主机名URL,其余请求按规则处理

Apache HTTPD反向代理:仅根路径重定向,其余路径按规则代理

核心需求实现思路

只对精确根路径(https://site1.com/,无任何子路径)执行指定重定向/代理逻辑,其余路径(如/wsdata、/run等)保留原有代理规则。关键是通过mod_rewrite精确匹配根请求,避免全局ProxyPass覆盖其他路径规则。

修改后的完整配置

<VirtualHost *:443>
    ServerName site1.com
    ErrorLog /var/log/httpd/site1.com-443-error_log
    TransferLog /var/log/httpd/site1.com-443-access_log

    # 443端口必须配置SSL,补充证书路径
    SSLEngine on
    SSLCertificateFile /path/to/your/certificate.pem
    SSLCertificateKeyFile /path/to/your/private-key.pem

    # 仅处理根路径请求
    RewriteEngine On
    # 精确匹配根路径(不含子路径)
    RewriteCond %{REQUEST_URI} ^/$
    # 内部代理(URL地址栏不变),如需外部跳转则替换为[R=301,L]
    RewriteRule ^/$ https://site1.com/run/?app_name=App1&page_name=Page1/ [P,L]

    # 保留/wsdata路径的WebSocket代理规则
    <Location /wsdata>
        ProxyPass https://site1.com/
        ProxyPassReverse https://site1.com/
        RewriteEngine On
        RewriteCond %{HTTP:UPGRADE} websocket [NC]
        RewriteCond %{HTTP:CONNECTION} upgrade [NC]
        RewriteRule .* "wss://site1.com%{REQUEST_URI}" [P]
    </Location>

    # 保留/run路径的代理规则
    <Location /run>
        ProxyPass https://site1.com/run/
        ProxyPassReverse https://site1.com/run/?app_name=App1&page_name=Page1/
    </Location>

    # 如需添加其他路径的代理规则,可在此补充
    # 示例:ProxyPass /api https://site1.com/api/
    # ProxyPassReverse /api https://site1.com/api/
</VirtualHost>

关键配置说明

  1. 根路径匹配:RewriteCond %{REQUEST_URI} ^/$确保只触发精确的根请求,不会影响任何带子路径的URL。
  2. 代理/重定向选择:
    • 使用[P,L]:内部代理,用户地址栏仍显示https://site1.com/,但实际请求转发到目标地址。
    • 使用[R=301,L]:永久重定向,用户地址栏会直接跳转到目标URL。
  3. 模块依赖:确保Apache已启用以下模块:
    # Debian/Ubuntu系统
    a2enmod proxy proxy_http rewrite proxy_wstunnel
    # RHEL/CentOS系统
    # 在httpd.conf中添加:
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule rewrite_module modules/mod_rewrite.so
    LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
    
  4. 配置验证:修改后执行apachectl configtest检查语法,无误后重启Apache服务。

内容的提问来源于stack exchange,提问作者Cássio Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:52:16