我需要将目录home / alphauser的所有请求发送到backend / alphauser,而不是请求home / alphauser目录下的文件。例如:
http://home/alphauser -> http://backend/alphauser http://home/alphauser/ -> http://backend/alphauser http://home/alphauser/icon.png -> http://home/alphauser/icon.png http://home/alphauser/index.html -> http://home/alphauser/index.html
我在home / alphauser /目录中创建了一个“.htaccess”文件,其中包含以下内容:
RewriteEngine on RewriteRule ^$ http://backend/alphauser [P]
mod_rewrite允许按预期访问home / alphauser /目录中的文件,但是当使用或不使用斜杠请求目录本身时:
http://home/alphauser http://home/alphauser/
..浏览器(firefox)提供了一个文件下载弹出窗口,其中指出:
You have chosen to open a file which is a: httpd/unix-directory
该文件的内容是来自后端/ alphauser的正确html(这是JSP的url模式),因此返回的有效负载是正确的。似乎apache正在发回这个奇怪的mime类型的“httpd / unix-directory”
帮助!
答案 0 :(得分:0)
罗伯特,
这对我来说似乎很奇怪
RewriteEngine on
RewriteRule ^$ http://backend/alphauser [P]
你所做的正则表达式基本上匹配任何公平的表达,但它不会将URI传递给后端。
RewriteEngine on
RewriteRule ^/alphauser/$ http://backend/alphauser [P]
或
RewriteRule ^/$ http://backend/alphauser [P]
我不是100%确定mod_rewrite在.htaccess文件中的行为
这对我的意见非常有意义,您还必须确保启用了mod_proxy
和mod_proxy_http
,否则它将无效。
答案 1 :(得分:0)
事实证明这个问题与mod_rewrite无关。我的后端根本没有发送ContentType标头。一旦我将其设置为填充ContentType为text/html
,一切正常。