Apache-2.2
有條件的apache虛擬主機
我為節點應用程序添加了一個 Apache 代理,下面是我的配置文件
<VirtualHost *:80> ServerName main.open.co DocumentRoot /var/www/vhosts/maint-test Options -Indexes ErrorDocument 404 /test.html ProxyRequests on ProxyPass /test.html ! ProxyPass / http://localhost:4130/ ProxyPassReverse / http://localhost:4130/ </VirtualHost>
上面的配置工作正常,但我想添加一個條件,如果
test.html
存在DocumentRoot
則它應該顯示test.html
,否則它應該使用ProxyPass
。誰能幫我解決這個問題?
您可以改用具有代理支持的重寫規則。我已經對此進行了測試,並且可以正常工作。
<VirtualHost *:80> ServerName main.open.co DocumentRoot /var/www/vhosts/maint-test Options -Indexes ErrorDocument 404 /test.html RewriteEngine On RewriteCond %{REQUEST_URI} !test.html RewriteRule ^/(.*)$ http://localhost:4130/$1 [P,L] RewriteCond %{REQUEST_URI} test.html RewriteCond /var/www/vhosts/maint-test%{REQUEST_FILENAME} !-f RewriteRule ^/test.html$ http://localhost:4130/test.html [P,L] </VirtualHost>