Tôi có hai ổ cắm phụ trợ chạy ở cổng 9000 và 9001. Cả hai đều cung cấp WebUI với CSS, JS và PHP. Nhưng cả hai đều là các trang web khác nhau và khi tôi sử dụng proxypass cho cả hai trang web, làm cách nào tôi có thể tải css,js từ chính URL được yêu cầu?
<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>
Như bạn có thể thấy ở trên, tôi đã thêm
ProxyPass /vendor/ https://127.0.0.1:9000/vendor
ProxyPass /css/ https://127.0.0.1:9000/css
cả hai dòng này để chuyển CSS,tệp nhà cung cấp theo cách thủ công tới URL proxy. Nhưng làm thế nào tôi có thể làm điều tương tự với site2? Vì /css được thêm vào ở trên, trong site2 đang nhận nội dung css từ chính site1. Ngoài ra, để làm cho tất cả các siêu liên kết trong trang web có đường dẫn /site1/ và /site2/, tôi đã thêm dòng ProxyHTMLURLMap / /site2/ vào cả hai. Nó hoạt động. Nhưng không hiểu sao các tệp CSS, JS vẫn đi đến / đường dẫn gốc vì đường dẫn gốc không có bất kỳ tệp nào và đưa ra 404. Làm cách nào tôi có thể thực hiện các lệnh gọi nội bộ CSS, các tệp JS này cũng có tiền tố /site1/ hoặc /site2/
Không có bất kỳ ProxyHTMLURLMap / /site2/ nào, tất cả các liên kết cung cấp 404 vì các yêu cầu chuyển sang / thay vì /site2/ Điều tương tự tôi cũng muốn làm cho các tệp CSS/JS.