以下行的完整意義是什麼
RewriteRule ^/(.*) http://127.0.0.1:5050/$1 [L,P]
在 ubuntu 14.4 上有三個應用程式都由 python 運行。它們如下連結所示
IP:8181 (headphones)
IP:8081 (sickbeard)
IP:5050 (couchpotato)
我還在該伺服器上安裝了 HTTPS。 https://82.211.213.130/
但我想用以下方式重寫以上三個站點
same IP/couchpotato -- this is working only
same IP/sickbeard -- Not working
same IP/headphones -- not working
當我想查看 /sickbeard 或 /headphones 時,它總是出現 couchpotato 頁面。
任何人都可以幫我解決這個問題嗎?
Apache 設定如下—
<VirtualHost *:443>
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
</VirtualHost>
<VirtualHost *:443>
ServerName lost-world.dk
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
RewriteEngine On
RewriteRule ^/(.*) localhost:5050/$1 [L,P]
ProxyPreserveHost on
# RequestHeader add X-Vhm-Root /couchpotato
</VirtualHost>
<VirtualHost *:443>
ServerName lost-world.dk
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
RewriteEngine On
RewriteRule ^/(.*) localhost:8081/$1 [L,P]
ProxyPreserveHost on
# RequestHeader add X-Vhm-Root /sickbeard
</VirtualHost>
答案1
我認為你一次問了太多問題。我建議使用nginx
,因為它更容易配置,特別是在處理多個虛擬主機時。
RewriteRule ^/(.*) http://127.0.0.1:5050/$1
這是與使用者造訪過的 url 相符的正規表示式 (regex) 規則。
此規則表示「取得網域名稱(www.example.tld/WHATEVER)後的所有字元並將其改寫為http://127.0.0.1:5050/無論什麼。
括號( )
稱為“捕獲”,將$1
第一個捕獲放在那裡。
您可以嘗試以下規則:
RewriteRule ^/couchpotato http://127.0.0.1:5050
這官方文檔提供了一些很棒的現實例子。