Mod-Rewrite
apache2反向代理,重寫問題
我一直告訴自己這應該很簡單。背景:我使用 Let’s Encrypt 設置了一個站點 ( https://example.com ) 進行 SSL 設置。效果很好。我用另一個站點向內部網路添加了一個新伺服器,根本沒有設置 SSL。效果很好。是時候將它添加為子域 ( http://sub1.example.com ) 我認為 Apache 中的簡單反向代理可以解決問題。但是…當我轉到http://sub1.example.com>時,我被重定向到<https://sub1.example.com …由於顯而易見的原因,這不起作用。
預設.conf -
<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>
(我很確定這是重寫規則乾擾,但不知道如何解決它?)
子1.conf:
<VirtualHost *:80> ServerName sub1.example.com <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://10.10.10.145/ ProxyPassReverse http://10.10.10.145/ </Location> </VirtualHost>
所以……我錯過了什麼?(如果它可能有幫助,我也可以包含 default-ssl.conf 文件,就這麼說吧!)
謝謝!
您發布的配置中沒有任何內容會觸發重定向。
在 ProxyPass 目標 URL 的配置中可能會在 Apache 配置之外找到一個原因,
http://10.10.10.145/
或者可能是您 在主域 example.com 上使用策略配置了HSTS 。 這會將 example.com 的策略應用到 sub1.example.com 並直接在您的瀏覽器中“更正” “不正確的 URL”,並將它們從 http 更改為 httpS。includeSubDomains
從隱身視窗或簡單的命令行進行測試
curl -v sub1.example.com