是否有可能使用mod_rewrite在内部重定向(因此URL不会在地址栏中更改)到同一主机上的不同端口? 如Apache mod_rewrite内部到不同的端口
http://host.com:8080 -> http://host.com:9999/myapplication/?param=val
是否有可能使用mod_rewrite在内部重定向(因此URL不会在地址栏中更改)到同一主机上的不同端口? 如Apache mod_rewrite内部到不同的端口
http://host.com:8080 -> http://host.com:9999/myapplication/?param=val
1,启用mod_proxy的
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2,你应该对虚拟主机的配置apache:
<VirtualHost *:8080>
....
ProxyPass/http://host.com:9999/myapplication/?param=val
ProxyPassReverse/http://host.com:9999/myapplication/?param=val
</VirtualHost>
3,安装程序还虚拟主机端口9999
更多信息这里:
:你可以在你的答案中包括如何做到这一点?谢谢 – kiltek 2016-02-01 14:13:47
拟订一项关于mod_proxy的解决方案与[P]
,代理标志:
启用模块的mod_proxy和mod_proxy_http:
a2enmod proxy proxy_http
没有启用这两个,你' d后来获得300 Forbidden状态,并在日志中显示错误消息“AH00669:尝试在未启用代理的情况下从mod_rewrite发出远程请求”。以下到为转发主机Apache2的虚拟主机配置部分
地点:
<VirtualHost *:8080>
…
RewriteEngine on
RewriteCond %{REQUEST_URI} !^$
RewriteCond %{REQUEST_URI} !^/
RewriteRule .* - [R=400,L]
RewriteRule (.*) http://host.com:9999/myapplication/$1?param=val [P,L]
…
</VirtualHost>
这包括由史蒂夫·韦伯斯特的技术,以防止恶意URL各具特色,explained here。不过,不知道如何处理在这种情况下附加GET参数。
重新启动的Apache2:
sudo service apache2 restart
看看'mod_proxy' ..以及重写规则的'[P]'(代理)标志。 – LazyOne 2012-02-16 09:17:25
谢谢,[P]尽我所能。关于第3点, – mm1 2012-02-16 11:54:59