【问题标题】:Apache 2.4 mod_rewrite not working as expectedApache 2.4 mod_rewrite 未按预期工作
【发布时间】:2016-03-31 21:37:00
【问题描述】:

我确信这是一个简单的问题,但我想对此有所了解。我有一个运行 plex 媒体服务器的 vm,我正在尝试为此设置 mod_rewrite。我想要一个 HTTP 连接 -> SSL -> Plex

保持简单,没有 SSL,以下工作

服务器名称丛

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyRequests Off
ProxyPreserveHost On
RewriteCond %{HTTPS} !=on
ProxyPass / http://127.0.0.1:32400/
ProxyPassReverse / http://127.0.0.1:32400/

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/web
RewriteCond %{HTTP:X-Plex-Device} ^$
RewriteRule ^/$ /web/$1 [R,L]

这让我可以进入

http://plex/

重写为

http://plex/web

并删除我的端口号,现在如果我采取与上述相同的方法并在第 9 行和第 10 行使用 https,我会中断重写。

有趣的是,如果我使用

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyRequests Off
    ProxyPreserveHost On
    RewriteCond %{HTTPS} !=on
    ProxyPass / http://127.0.0.1:32400/
    ProxyPassReverse / http://127.0.0.1:32400/

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/web
    RewriteCond %{HTTP:X-Plex-Device} ^$
    RewriteRule ^/?(.*) https://%{SERVER_NAME}:32400/web/$1 [R,L]

这工作正常,但端口号没有被删除。我知道这是因为我将它包含在我的重写规则中。

所以我的问题实际上有两个方面。

A) 为什么在第 9 行和第 10 行使用 https 而不是 http 不能正常工作? B) 在使用重写规则时转发 http->https 的正确设置是什么?

提亚

【问题讨论】:

标签: apache mod-rewrite ssl


【解决方案1】:

尝试 %{HTTP_HOST} 而不是 %{SERVER_NAME}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 2018-09-14
    • 2023-03-31
    • 1970-01-01
    • 2018-02-27
    • 2011-12-31
    相关资源
    最近更新 更多