背景

背景

背景

我想在我的服务器上使用 webui 设置 utorrent。

问题

Utorrent 设置了自己的网络服务器,默认情况下监听端口 8080。

然后通过访问 example.com:8080/gui 来访问 ui

我的目标是使用反向代理来访问 subdomain.server.com。
问题出在我发现某些 URL 被硬编码为 /gui/* 时,这当然会破坏一切。

我现在正尝试使用 mod rewrite 从请求中删除初始 /gui,但由于某种原因,它不起作用。

我可以访问该网站(我得到了 utorrent 加载屏幕)但如果我检查我的日志,我会发现所有请求都/gui/token.html得到了 404 Not Found 响应,/token.html但如果我手动尝试,一切就都正常了。

我尝试将重写移至代理,但这也不起作用。

我目前拥有的

这是我的虚拟主机文件:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName subdomain.example.com

    RewriteEngine  on
    RewriteRule ^/gui(/?)(.*)$ /$2

    ProxyRequests off
    ProxyPass / http://127.0.0.1:8080/gui/
    ProxyPassReverse / http://127.0.0.1:8080/gui/
    RequestHeader set Authorization "Basic YWRtaW46"
    ErrorLog /var/log/apache2/utorrent-error.log
    CustomLog /var/log/apache2/utorrent-access.log common

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/*.domain.crt
    SSLCertificateKeyFile /etc/ssl/private/*.domain.key
    SSLCACertificateFile /etc/ssl/certs/domain-ca-ssl.crt

    BrowserMatch "MSIE [2-6]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>

<proxy http://127.0.0.1:8080/gui/*>
    Order deny,allow
    Deny from all
    Allow from all
    AuthName subdomain.example.com
    AuthType Basic
    AuthUserFile /etc/utorrent/.htpasswd
    Require valid-user
</proxy>
</IfModule>

答案1

事实证明,这很简单,只需在重写中添加 [PT] 标志即可

答案2

添加 PT 开关后效果很好

<VirtualHost *:80>
        ServerName utorrent.yourdomain.com
        ProxyPreserveHost on
        RewriteEngine  on
        RewriteRule ^/gui(/?)(.*)$ /$2 [PT]
        ProxyPass / http://127.0.0.1:8080/gui/   
        ProxyPassReverse / http://127.0.0.1:8080/gui/   
</VirtualHost>

相关内容