Рейтинг:0

Apache proxypass css/js для своих конкретных URL-адресов

флаг cn

У меня есть два моих внутренних сокета, работающих на портах 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.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.