我确信这是一个简单的问题,但我想对此有所了解。我有一个运行plex媒体服务器的虚拟机,我正在尝试为此设置mod_rewrite。我想要一个HTTP连接 - > SSL - >丛
保持简单,没有SSL以下工作
ServerName plex
<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]
这允许我输入
哪个改写为
并删除我的端口号,现在如果我采用与上面相同的方法并在第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-&gt; https的正确设置是什么?
tyia
答案 0 :(得分:0)
尝试%{HTTP_HOST}而不是%{SERVER_NAME}