我使用Apache 2.4作为反向代理,只有在将凭据传递到URL时,我才需要重定向到URL。例如,这是我的网址:
https://user:password@myserver.mydomain.com/site1.php?1
我使用此重写条件:
RewriteCond %{HTTP_HOST} ^user:password@ohab\.marcolino7\.myds\.me$
但它不匹配,我想因为HTTP_HOST不包含身份验证数据。 在那里有一种方法来匹配URL与身份验证数据,然后我可以重定向?
非常感谢 马可
答案 0 :(得分:0)
正如您所说,这不是主机标题的一部分,所以不会像那样匹配。
您可以使用REMOTE_USER
变量执行此操作。您如何做到这取决于您的规则的上下文。请参阅the documentation,特别是下面的引用。
%{LA-U:variable}
可用于执行前瞻 内部(基于URL)子请求,以确定最终值 可变。这可以用来访问变量进行重写 目前阶段尚未提供,但将在稍后阶段确定。例如,根据
REMOTE_USER
变量重写 在必须使用的每服务器上下文(httpd.conf
文件)中%{LA-U:REMOTE_USER}
- 此变量由授权设置 在 URL转换阶段之后的阶段(在此期间) mod_rewrite运行)。另一方面,因为mod_rewrite实现了每个目录 上下文(
.htaccess
文件)通过API的Fixup阶段和因为 授权阶段在此阶段之前,您可以使用 在这种情况下%{REMOTE_USER}
。
httpd.conf
文件中包含以下内容:
RewriteCond %{LA-U:REMOTE_USER} =user
或.htaccess
:
RewriteCond %{REMOTE_USER} =user