Puncte:0

Apache proxypass css/js la adresele URL specifice

drapel cn

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.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.