RewriteCond:有任何解决方法可以将 HTTP_REFERER 与 HTTP_HOST 匹配吗?

发布于 2024-11-07 02:32:40 字数 207 浏览 2 评论 0原文

1)我需要验证这些连接是由我的同一网站还是由其他人引用。 2)我不能简单地手动键入 HTTP_HOST,因为 .htaccess 文件是由 subversion 处理的,并在具有不同 HTTP_HOST 值的不同开发环境之间共享。

因此,目标是找到一种解决方法,使这种情况透明地工作,无论什么情况环境是,并让 svn 轻松处理 htaccess,无需手动修复。

谢谢!

1) I need to verify whether the connections are referred by my same site or by someone else.
2) I can NOT simply type the HTTP_HOST manually because the .htaccess file is meant to be handled by subversion and shared across different development environments with different HTTP_HOST values

So the goal is to find a workaround to make this condition work transparently no matter what the environment is, and keep htaccess easily handled by svn without need of manual fixes.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初见你 2024-11-14 02:32:40

使用 Apache 2,您可以执行以下操作:

RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} ^[^:/?#]+://([^/?#]+)  # get authority
RewriteCond %1 ^(?:(?:[A-Za-z0-9-._~!
amp;'()*+,;=:]|%[0-9A-Fa-f]{2})*@)?((?:[A-Za-z0-9-._~!
amp;'()*+,;=]|%[0-9A-Fa-f]{2})*)(?::\d+)?$  # get host name
RewriteCond %1/%{HTTP_HOST} !^([^/]+)/\1$  # compare to HTTP_HOST
RewriteRule ^ …

请注意,如果是 HTTP/1.1 之前的请求,HTTP_HOST 也可以为空。

With Apache 2 you can do this:

RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} ^[^:/?#]+://([^/?#]+)  # get authority
RewriteCond %1 ^(?:(?:[A-Za-z0-9-._~!
amp;'()*+,;=:]|%[0-9A-Fa-f]{2})*@)?((?:[A-Za-z0-9-._~!
amp;'()*+,;=]|%[0-9A-Fa-f]{2})*)(?::\d+)?$  # get host name
RewriteCond %1/%{HTTP_HOST} !^([^/]+)/\1$  # compare to HTTP_HOST
RewriteRule ^ …

Note that HTTP_HOST can also be empty in case of an pre-HTTP/1.1 request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文