目前,我的httpd.conf
文件中有以下规则,将所有请求从端口 80 转发到端口 8080,由 GlassFish 应用服务器提供服务:
<VirtualHost *:80>
ServerAdmin admin@myserver.com
ServerName myserver.com
ProxyPreserveHost On
# setup the proxy
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
现在,我需要添加一个规则,以便http://myserver.com/
将所有请求转发到http://myserver.com/page/index.html
,并且 URL 应该仍然出现http://myserver.com/
在客户端的浏览器上。我试图在上面添加以下规则VirtualHost
:
RewriteEngine On
RewriteRule http://myserver.com/ http://myserver.com/page/index.html
或者
RewriteEngine On
RewriteRule ^/ http://myserver.com/page/index.html
或者
RewriteEngine On
RewriteRule ^/index.html http://myserver.com/page/index.html
但是,当我转到 时http://myserver.com/
,浏览器出现此错误:This webpage has a redirect loop
. 第三条规则只有在我去的时候才有效http://myserver.com/index.html
。
在为 Apache 编写规则方面,我完全是个菜鸟。因此,如果您能告诉我我在这里做错了什么,我将不胜感激:)。
更新:
以下规则完美运行:
RewriteEngine On
RewriteRule ^/$ /page/index.html [R]