Apache .htaccess在特定URL访问时重定向推荐人
我已经了解了通过.htaccess重定向引用者的基本知识,但我能处理.htaccess文件的唯一方法是拒绝整个文件夹或文件的条目,但我从未了解如何在自定义索引页上设置重定向规则,例如 我想要的是: 我只希望1个特定的推荐人能够访问此网站“” 非指定引用者的所有其他人都应重定向到其他页面 我尝试了许多php脚本来检测引用者,但不幸的是,它们似乎都不适合我Apache .htaccess在特定URL访问时重定向推荐人,apache,.htaccess,mod-rewrite,redirect,referrer,Apache,.htaccess,Mod Rewrite,Redirect,Referrer,我已经了解了通过.htaccess重定向引用者的基本知识,但我能处理.htaccess文件的唯一方法是拒绝整个文件夹或文件的条目,但我从未了解如何在自定义索引页上设置重定向规则,例如 我想要的是: 我只希望1个特定的推荐人能够访问此网站“” 非指定引用者的所有其他人都应重定向到其他页面 我尝试了许多php脚本来检测引用者,但不幸的是,它们似乎都不适合我 RewriteCond %{HTTP_REFERER} !^http://www\.refferersite\.org/ [NC] Rewrit
RewriteCond %{HTTP_REFERER} !^http://www\.refferersite\.org/ [NC]
RewriteRule ^/index.php?page=Custom&pageID=7 http://newsite.com/index.php [L]"
我非常感谢有一个解决方案:)
编辑:像这样的东西当然,不幸的是这不起作用
RewriteCond %{HTTP_REFERER} !^http://www\.refferersite\.org/ [NC]
RewriteRule ^/index.php?page=Custom&pageID=7 http://newsite.com/index.php [L]"
我将给出一个简单的例子,如果你采用形式变量或其他东西,事情会变得更复杂一些。但对于.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
的内容,它会附加到索引页的末尾
希望这有帮助
--更新--
我想你想要这个
RewriteCond %{HTTP_REFERER} !referringsite\.com [NC,OR]
RewriteRule index.php?page=Custom&pageID=7 index.php [L]
不要将http包含在引用站点中。你能试试吗
RewriteCond %{HTTP_REFERER} .
RewriteCond %{HTTP_REFERER} !yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !alloweddomain\.com [NC]
RewriteRule .? - [F]
第一个RewriteCond检查引用者是否为空。第二个检查它是否不包含字符串yourdomain.com,第三个检查它是否不包含字符串allowedomain.com。如果所有这些检查都通过,重写规则将触发并拒绝请求
是否只允许从一个IP地址访问?无论是从该IP地址还是从某个页面访问实际上都无关紧要。我只是想让人们从特定的推荐人那里访问该站点。不幸的是,这段代码根本不允许我访问该页面:S以及我在这里被重定向到另一个站点的确切位置?我很抱歉,但我不确定这将如何阻止它。你能把你的整个.htaccess复制粘贴到这里吗?(如果你愿意,请输入域名)不管我说什么,我现在可以访问该网站,但我想你误解了我的意思。我不想让“referringsite.com”中的人直接访问“index.php?page=Custom&pageID=7”,但“referringsite.com”中的人是唯一可以访问customID=7页面的人。也许这会更好地展示我正在经历的事情。不幸的是,这个代码当然不起作用:编辑:我想不出如何把代码放在这里。我会把它放在我的第一篇帖子上,而不是上面。啊,我明白你们的意思了。我认为如果您更改
RewriteRule^/index.php?page=Custom&pageID=8http://newsite.com/index.php [五十]
toRewriteRule^/index.php?page=Custom&pageID=8 index.php[L]
它可以做你想做的事情?与我提供的版本完全一样,它没有做任何事情,似乎无法识别“^/indexhp”…”也许是错误的reggex格式?