Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess在特定URL访问时重定向推荐人_Apache_.htaccess_Mod Rewrite_Redirect_Referrer - Fatal编程技术网

Apache .htaccess在特定URL访问时重定向推荐人

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

我已经了解了通过.htaccess重定向引用者的基本知识,但我能处理.htaccess文件的唯一方法是拒绝整个文件夹或文件的条目,但我从未了解如何在自定义索引页上设置重定向规则,例如

我想要的是:

我只希望1个特定的推荐人能够访问此网站“”

非指定引用者的所有其他人都应重定向到其他页面

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

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 [五十] 
to
RewriteRule^/index.php?page=Custom&pageID=8 index.php[L]
它可以做你想做的事情?与我提供的版本完全一样,它没有做任何事情,似乎无法识别“^/indexhp”…”也许是错误的reggex格式?