如何允许从特定域重定向

时间:2019-02-05 08:00:39

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

我从我的网站门户获得注册页面,但仅在以前的域为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吗?那不是文件,而是页面?

2 个答案:

答案 0 :(得分: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(当然,可以欺骗标头)

答案 1 :(得分:0)

是的,您可以对任何URL使用HTTP_REFERER。将此添加到您的.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或您选择将其重定向到的任何页面。