【问题标题】:How to allow redirection from specific domains如何允许从特定域重定向
【发布时间】:2019-06-29 00:11:42
【问题描述】:

我的网站门户有一个注册页面,但我希望仅在之前的域是 PayPal 域(例如)时才允许加载它。这样我就可以保证即使机器人扫描了我的 WordPress 实例(这并不难),它也无法注册。

我知道 mod_rewrite 可以防止盗链,并允许特定域加载该内容。

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com [NC] RewriteRule \.(jpe?g|gif|bmp|png)$ https://example/404.jpg [NC,L]

但是可以使用普通的 URL 吗?也就是说,不是文件,而是页面?

【问题讨论】:

  • Henrique,你的问题不清楚
  • 对不起。我想阻止所有传入的流量,除非引用的是像 PayPal 这样的网站,因为当用户为服务付费时,它会被重定向到我的注册 URL(由于系统本身,它现在是公开的)
  • 好的,但是您所说的“普通 URL,不是文件,而是页面”是什么意思(您的示例在任何情况下都应该有效)?
  • 这是因为人们通常会阻止图片和文件的盗链。我想阻止不是来自 paypal.com 的人访问我的特定 URL。

标签: php apache .htaccess mod-rewrite url-redirection


【解决方案1】:

您可以使用(假设您的注册链接是,例如 /wp-login.php?action=register)

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?paypal.com [NC]
RewriteCond %{QUERY_STRING} ^action=register$
RewriteRule ^wp-login.php index.php [NC,L]

..如果有人试图在没有来自贝宝的情况下注册,则重定向到 index.php(当然,标头可以被欺骗)

【讨论】:

  • 案例中的wp-login.php是做什么的?
【解决方案2】:

是的,您可以将 HTTP_REFERER 用于任何 URL。将此添加到您的 .htaccess 中:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?paypal.com [NC]
RewriteCond %{REQUEST_URI} ^/your-registration-url$ [NC]
RewriteRule ^your-registration-url$ https://website.com/404 [R=301,L]

这会将访问您的注册 URL 的任何人重定向到没有将 paypal.com 作为引荐来源的 website.com/404 或您选择将他们重定向到的任何页面。

【讨论】:

    猜你喜欢
    • 2021-04-04
    • 2013-06-09
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2014-07-14
    • 2018-02-22
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多