0

我已经了解了通过 .htaccess 重定向引用者的基础知识,但我能用 .htaccess 文件做的唯一事情是拒绝整个文件夹或文件的条目,但我从来不明白如何设置重定向例如,自定义索引页面上的规则

我想要做什么:

我只希望 1 个特定的推荐人能够访问此站点“ http://mydomain.com/index.php?page=Custom&pageID=7

不是指定引用者的其他所有人都应该被重定向到另一个页面。

我尝试了许多用于引荐来源检测的 php 脚本,但不幸的是,它们似乎都不适合我

我将非常感谢您的解决方案:)

编辑: 不幸的是,这样的事情当然不起作用

RewriteCond %{HTTP_REFERER} !^http://www\.refferersite\.org/ [NC]
RewriteRule ^/index.php?page=Custom&pageID=7 http://newsite.com/index.php [L]"
4

2 回答 2

2

我将举一个简单的例子,如果你接受表单变量或其他东西,事情会变得有点复杂。但是对于你的 .htaccess 你会想要这样的东西:

RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} referringsite\.com [NC,OR]
RewriteRule .* index.php?page=Custom&pageID=7 [L,QSA]

重写条件必须为真才能触发重写。此时.*告诉它将整个查询重写为index.php?page=....

L将使它停止处理其他规则(因此,如果您有任何规则,它们不会重写此重写)。

qsa维护任何查询参数。因此,如果他们也传递了类似的东西?campaign=my_ad_campaign,它会附加到您的索引页面的末尾。

希望这可以帮助!

--更新--我想你想要这个

RewriteCond %{HTTP_REFERER} !referringsite\.com [NC,OR]
RewriteRule index.php?page=Custom&pageID=7 index.php [L]

不要在引用站点中包含 http。

于 2013-09-27T14:25:26.277 回答
0

你可以试试这个吗?:

RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !alloweddomain\.com [NC]
RewriteRule .? - [F]

第一个 RewriteCond 检查引用者是否为空。第二个检查它不包含字符串 yourdomain.com,第三个检查它不包含字符串 alloweddomain.com。如果所有这些检查都通过,RewriteRule 将触发并拒绝该请求。

拒绝来自除一个以外的所有域的推荐

于 2014-06-01T20:32:06.623 回答