如何创建条件 ProxyPass?

如何创建条件 ProxyPass?

我对其中一个站点可用.conf文件进行了以下配置。它的配置是,如果您点击 ,则
加载博客。 不知何故,它导致也提供博客。但那也很好。ghostblog.example.com
example.com

<Virtualhost *:80>
  ServerName blog.example.com
  ServerAdmin [email protected]
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

所以我刚安装完phpmyadmin,就发现无法用 访问它http://example.com/phpmyadmin。访问该页面将显示 ghost 的 404 页面未找到。

所以我想我需要ProxyPass忽略一些条件/phpmyadmin
我尝试了以下方法,但不起作用。

<Virtualhost *:80>
  ServerName blog.example.com
  ServerAdmin [email protected]
  ProxyPass        /phpmyadmin  http://localhost/phpmyadmin
  ProxyPassReverse /phpmyadmin  http://localhost/phpmyadmin
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

Apache 刚刚挂起,当我点击时我必须重新启动它http://example.com/phpmyadmin

更新

我尝试了以下操作,它会加载phpmyadmin登录页面。只需:80在 localhost 后添加即可。并为虚拟主机提供一个特定的域名,而不是*

<Virtualhost blog.example.com:80>
  ServerName blog.example.com
  ServerAdmin [email protected]
  ProxyPass        /phpmyadmin  http://localhost:80/phpmyadmin
  ProxyPassReverse /phpmyadmin  http://localhost:80/phpmyadmin
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

现在的问题是,它重定向到。我猜http://localhost/phpmyadmin/index.php?token=8fa78a71a166399749b58cd3cb66b7f2可能是一些配置。phpmyadmin

答案1

您可以使用!目标来阻止位置被代理:

<Virtualhost *:80>
  DocumentRoot     /path/to/parent/of/phpmyadmin
  ProxyPass        /phpmyadmin !
  ProxyPass        /  http://localhost:2368/
  ProxyPassReverse /  http://localhost:2368/
</Virtualhost>

这会将所有请求代理到localhost:2368,除了 phpmyadmin 的请求。

当然,您必须设置文档根目录,否则将找不到 phpmyadmin。

相关内容