Pau*_*per 13 apache .htaccess proxy transparentproxy
Apache文档声明RewriteRule应该放在服务器配置中,但由于共享托管情况,它们可以放在htaccess中.我处于这种情况.
我正在尝试设置透明代理:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/foo [OR]
RewriteCond %{REQUEST_URI} ^/bar
RewriteRule ^(.*)$ http://example.com/$1 [P]
Run Code Online (Sandbox Code Playgroud)
这工作正常......除了重定向(如果/foo
重定向到/bar
).重定向返回到example.com,而不是我的服务器.
我理解该ProxyPassReverse
指令将解决这个问题,但是当我添加它时,我得到一个"内部服务器错误"页面.htaccess
与Rewrite指令不同,它ProxyPassReverse
不适用于htaccess.
如何在共享主机环境中设置透明代理,或者这是不可能的?
(这似乎是合理的,因为Rewrite已经获得了80%的路径,并且在一个htaccess中拥有透明代理不会干扰在另一个htaccess中使用它.)
Mic*_*way 16
不幸的是,我很确定你想做什么是不可能的:我正在努力做同样的事情!根据我的研究,我相信这是不可能的.
简而言之,您需要使用ProxyPassReverse,它仅在VirtualHost级别(或类似)可用; 不是一个htaccess级别.
编辑:我实现这一目标的唯一方法是配置响应服务器/应用程序以了解它在代理后面,并适当地提供页面.也就是说,我使用.htaccess重定向到另一台服务器,如下所示:
RewriteEngine on
RewriteRule (.*) http://localhost:8080/$1 [P,L]
Run Code Online (Sandbox Code Playgroud)
然后在应用程序服务器上 - 在这种情况下,JIRA安装 - 我适当地配置Java Tomcat/Catalina以提供具有代理信息的页面:
proxyName="my.public.address.com"
proxyPort="80"
Run Code Online (Sandbox Code Playgroud)
但是,这并不完全透明; 应用服务器需要以代理方式提供页面.但它可能有一些用处.
归档时间: |
|
查看次数: |
28139 次 |
最近记录: |