Apache 服务器接收以下格式的请求
http://192.168.110.65/?http%3A%2F%2Fdev.virtualearth.net
如何使用 mod_rewrite 让 Apache 生成查询字符串的重定向
http%3A%2F%2Fdev.virtualearth.net
这是我的 mod_rewrite
<IfModule rewrite_module>
RewriteEngine On
ErrorLog "logs/rewrite.log"
LogLevel trace8
RewriteCond %{QUERY_STRING} http
RewriteRule "/" %{QUERY_STRING} [R,END,NE,QSD]
</IfModule>
这是日志中的内容:
无法将 GET /http%3A%2F%2Fdev.virtualearth.net%2FREST%2Fv1%2FImagery%2FMetadata%2FAerialWithLabels%3Fincl%3DImageryProviders%26key%3DArqI7N2ea0D8oysu209dksva2GSUXRIz1fJZigqHRuHNQMhGHvVZwxg76pSlwBFi%26jsonp%3DloadJsonp758595 HTTP/1.1 映射到文件
问题在于它没有重定向到查询字符串中的 URL,而是将当前主机添加到 URL 前面(http://xx.xx.xx.xx/网址) 并重定向,因此我得到 403。我需要找到一种方法,以便在重定向时不将当前主机添加到前面。
答案1
您可以使用 Proxy Pass 做同样的事情。尝试以下解决方案
打开位于 \conf 目录中的 httpd.conf。查找以下LoadModule
指令并通过删除行开头的 # 来取消注释它们。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
在 httpd.conf 的底部添加以下行以启用重新路由。
ProxyPass /images http://localhost:8080/images
ProxyPassreverse / http://localhost:8080/