我已经为节点应用程序添加了 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
。
有人能帮我吗?
答案1
您可以改用支持代理的重写规则。我已经测试过了,它有效。
<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>