- 本地,家庭助理位于http://192.168.1.125:8123
- 我需要反向代理https://example.com/home-assistant
- 虚拟主机https://example.com存在,不应被触及
我的虚拟主机设置:
<VirtualHost *:443>
ProxyPreserveHost On
ProxyRequests off
ProxyPass /home-assistant/api/websocket ws://192.168.1.125:8123/api/websocket
ProxyPassReverse /home-assistant/api/websocket ws://192.168.1.125:8123/api/websocket
ProxyPass /home-assistant http://192.168.1.125:8123
ProxyPassReverse /home-assistant http://192.168.1.125:8123
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /home-assistant/(.*) ws://192.168.1.125:8123/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /home-assistant/(.*) http://192.168.1.125:8123/$1 [P,L]
SSLEngine On
DocumentRoot /home/michal/sites/webmail
ServerAlias www.mydomain.com
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
</VirtualHost>
但它不起作用。当访问https://example.com/home-assistant家庭助理徽标已加载,我可以看到家庭助理 sitl 尝试从 example.com/url 而不是 example.com/home-assistant/url 加载其资源,因此它不会加载。
如何让它工作?我猜如果代理位于顶层“/”,而不是“/home-assistant”,它就会工作
如何修复我的重写规则以使所有重定向都变为example.com/home-assistant
而不是example.com/
?
答案1
使用正确的 URL 配置家庭助理。
转到配置 > 常规在相应的框中输入您的外部和内部 URL。按保存
https://community.home-assistant.io/t/base-url-deprecation-but-unclear-what-to-do-about-it/200377
最好通过正确配置后端来解决这些问题,而不是让反向代理动态重写 HTML。