У меня есть два моих внутренних сокета, работающих на портах 9000 и 9001. Оба предоставляют WebUI с CSS, JS и PHP. Но оба являются разными веб-сайтами, и когда я использую proxypass для обоих сайтов, как я могу загрузить css, js с самого запрошенного URL-адреса?
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ProxyRequests off
DocumentRoot /var/www/html
SSLProxyEngine on
ProxyPreserveHost On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
# ServerName _
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel error
SSLEngine on
SSLCertificateFile /path/to/crt
SSLCertificateKeyFile /path/to/key
RewriteEngine on
RewriteRule ^/site1$ /site1/ [R]
ProxyPass /site1/ https://127.0.0.1:9000/
ProxyPass /vendor/ https://127.0.0.1:9000/vendor
ProxyPass /css/ https://127.0.0.1:9000/css
ProxyRequests off
ProxyHTMLURLMap https://127.0.0.1:9000/ /site1/
ProxyHTMLExtended On
<Location /site1/>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyPreserveHost On
ProxyHTMLURLMap / /site1/
RequestHeader unset Accept-Encoding
</Location>
RewriteRule ^/site2$ /site2/ [R]
ProxyPass /site2/ https://127.0.0.1:9001/
ProxyPass /vendor/ https://127.0.0.1:9001/vendor
ProxyPass /css/ https://127.0.0.1:9001/css
ProxyRequests off
ProxyHTMLURLMap https://127.0.0.1:9001/ /site2/
ProxyHTMLExtended On
<Location /site2/>
ProxyPassReverse /
ProxyHTMLEnable On
ProxyPreserveHost On
ProxyHTMLURLMap / /site2/
RequestHeader unset Accept-Encoding
</Location>
</VirtualHost>
Как вы можете видеть выше, я добавил
ProxyPass /vendor/ https://127.0.0.1:9000/vendor
Прокси-пасс /css/ https://127.0.0.1:9000/css
обе эти строки, чтобы вручную передать файлы CSS, поставщика на URL-адрес прокси. Но как я могу сделать то же самое для site2? Поскольку /css добавлен выше, в site2 я получаю содержимое css с самого site1. Также, чтобы все гиперссылки на сайте имели пути /site1/ и /site2/, я добавил строку ProxyHTMLURLMap / /site2/ в них обоих. Это работает. Но не уверен, почему файлы CSS, JS по-прежнему идут по пути / root, поскольку в корневом пути нет файлов и выдается 404. Как я могу сделать эти внутренние вызовы файлы CSS, JS также принимают префикс /site1/ или /site2/
Без какого-либо ProxyHTMLURLMap //site2/ все ссылки дают 404, так как запросы идут на / вместо /site2/ То же самое я хочу сделать и для файлов CSS/JS.