我已经了解了通过.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]"
答案 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会触发并拒绝该请求。