.htaccess重定向引荐来自特定的URL访问

时间:2013-09-27 14:14:02

标签: apache .htaccess mod-rewrite redirect referrer

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

我想要的是什么:

我只想要一个特定的推荐人才能访问此网站“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]"

2 个答案:

答案 0 :(得分:1)

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

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

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

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

qsa将维护任何查询参数。因此,如果它们也传递了?campaign=my_ad_campaign之类的内容,它会附加到索引页的末尾。

希望这有帮助!

- Update-- 我想你想要这个

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

不要在引荐网站中包含http。

答案 1 :(得分:0)

你可以尝试这个吗?:

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

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

Deny referrals from all domains except one

相关问题