定义ProxyPass(Apache)以在所有路径中提供相同的页面

e37o9pze  于 2022-11-16  发布在  Apache
关注(0)|答案(1)|浏览(132)

如何使用ProxyPass从所有以/page开头的URL中始终提供index.html?我需要浏览器保持输入的地址。
示例:site.com/page/home/2在浏览器中,将site.com/page/home/2保留在地址栏中,但Apache将提供site.com/index.html(所有以/page开始的路径
我试过:

ProxyRequests     Off
        ProxyPreserveHost On

        <Location /page/* >
            ProxyPass http://127.0.0.1/index.html
            ProxyPassReverse http://127.0.0.1/index.html
        </Location>
tjvv9vkg

tjvv9vkg1#

这根本不是http服务器提供的代理功能的目的。
相反,您应该实现一个简单的内部重写:

RewriteEngine on
RewriteRule ^/?page/ /index.html [QSD,END]

最好在http服务器的(虚拟)主机配置中实现这样的规则。如果您没有访问该配置的权限,您可以使用 distributed 配置文件(通常称为.“htaccess”),该功能需要启用,并且该文件必须位于http hosts DOCUMENT_ROOT文件夹中。该规则的工作原理与此类似。
与使用代理功能相比,有两个主要优点:
1.你不需要一个沉闷的第二,内部http请求的每一个传入的请求,所以性能更好,服务器上的负载减少。
1.重写模块是几乎每个apache http服务器安装的标准特性。代理模块 * 不是 *。

相关问题