我想要设置一个 apache 2.4 虚拟主机来提供目录“var/www/html”中存在的“物理”文件(例如 robots.txt)。
如果请求的 URI 不是现有文件,则应使用反向代理规则。
我读过关于条件 ProxyPassing 的内容,例如
<If "! -f %{REQUEST_FILENAME}">
#ProxyPassReverseCookiePath / /author
ProxyPassReverseCookieDomain localhost mywebsite.com
#ProxyPass / ajp://localhost:7009/
#ProxyPassReverse / ajp://localhost:7009/
ProxyPass / http://localhost:7080/
ProxyPassReverse / http://localhost:7080/
</If>
在这些行之后我放置了我的定位指令。
但它不起作用,而是说AH00526: Syntax error on line 45 of /etc/apache2/sites-enabled/000-default.conf: ProxyPass cannot occur within <If> section
我在这里读到了这个:https://serverfault.com/a/655873/149187(不是被接受的答案,但有 3 票赞成)。
我该如何使用 if 标签?或者有没有更好的方法来实现我想要的效果?谢谢你为我指明了正确的方向!
答案1
类似这样的(未经测试):
RewriteEngine on
RewriteCond "/var/www/html/%{REQUEST_URI}" !-f
RewriteRule "^/(.*)$" "http://localhost:7080/$1" [P]