Am două dintre socketurile mele backend care rulează la portul 9000 și 9001. Ambele oferă o WebUI cu CSS, JS și PHP. Dar ambele sunt site-uri diferite și când folosesc proxypass pentru ambele site-uri, cum pot încărca css,js de la adresa URL solicitată?
<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>
După cum puteți vedea mai sus, am adăugat
ProxyPass /vendor/ https://127.0.0.1:9000/vendor
ProxyPass /css/ https://127.0.0.1:9000/css
ambele linii pentru a trece manual fișierele CSS, furnizor la adresa URL proxy. Dar cum pot face același lucru pentru site2? Deoarece /css este adăugat mai sus, în site2 primesc conținut css de la site1 însuși. De asemenea, pentru ca toate hyperlinkurile din site să aibă calea /site1/ și /site2/, am adăugat linia ProxyHTMLURLMap / /site2/ în ambele. Functioneaza. Dar nu sunt sigur de ce fișierele CSS, JS încă merg la / calea rădăcină, deoarece calea rădăcină nu are fișiere și dau 404. Cum pot face aceste apeluri interne CSS, fișierele JS iau și prefixul /site1/ sau /site2/
Fără niciunul dintre ProxyHTMLURLMap / /site2/, toate linkurile dau 404, deoarece solicitările merg pentru / în loc de /site2/ Același lucru pe care vreau să-l fac și pentru fișierele CSS/JS.