为什么mod_rewrite从我的请求URL中删除端口号?

时间:2013-09-17 16:48:09

标签: apache .htaccess mod-rewrite url-rewriting mod-proxy

我正在使用带有mod_rewrite的Apache mod_proxy来屏蔽查询字符串中的一些凭据。日志显示重写规则正常工作,但正在剥离端口号(:9000),导致代理拒绝URL。除了安全讲座以及与手头实际问题无关的任何其他问题,有人能告诉我解决方案可能是什么吗?

使用的基本示例:

RewriteCond %{QUERY_STRING} ^(.*)userid=fakepass(.*)
RewriteRule ^(.*)$ $1?%1userid=realpass%2

原始网址 https://domain.com:9000/somedirectory/request.jsp?userid=theuser&password=fakepass

目标网址:: https://domain.com:9000/somedirectory/request.jsp?userid=theuser&password=realpass

mod_rewrite之后的实际结果: https://domain.com/somedirectory/request.jsp?userid=theuser&password=realpass

1 个答案:

答案 0 :(得分:0)

在规则中指定端口。将.htaccess更改为:

RewriteCond %{QUERY_STRING} ^(.*)userid=fakepass(.*)
RewriteRule ^(.*)$ https://%{HTTP_HOST}:9000/somedirectory/request.jsp?userid=theuser&password=realpass