Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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
Php 仅允许从.htaccess中的特定引用进行访问_Php_Wordpress_.htaccess - Fatal编程技术网

Php 仅允许从.htaccess中的特定引用进行访问

Php 仅允许从.htaccess中的特定引用进行访问,php,wordpress,.htaccess,Php,Wordpress,.htaccess,我有一个安装了wordpress的网站,我正在使用modrewrite来显示干净的URL。我希望从facebook提交的访问者访问该网站,而其他人重定向到其他网站,我做了一个,它的工作,但我不知道如何将被拒绝的访问者重定向到其他网站 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST

我有一个安装了wordpress的网站,我正在使用modrewrite来显示干净的URL。我希望从facebook提交的访问者访问该网站,而其他人重定向到其他网站,我做了一个,它的工作,但我不知道如何将被拒绝的访问者重定向到其他网站

 # BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress


RewriteCond %{HTTP_REFERER} !(www.)?facebook.com
RewriteCond %{HTTP_REFERER} !(www.)?fb.com
RewriteCond %{HTTP_REFERER} !(www.)?l.facebook.com
RewriteCond %{HTTP_REFERER} !(www.)?goo.gl



RewriteRule .* - [F] 
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
重写cond%{HTTP_REFERER}!(www.)?facebook.com
重写cond%{HTTP_REFERER}!(www.fb.com)
重写cond%{HTTP_REFERER}!(www.)l.facebook.com
重写cond%{HTTP_REFERER}!(www.)goo.gl
重写规则。*-[F]

您的
重写规则
应该包含您要重定向到的规则的完整URL。 例如:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !(www.)?facebook.com
RewriteCond %{HTTP_REFERER} !(www.)?fb.com
RewriteRule ^ http://www.non-facebook-refer.com [R=301,L]
</IfModule>

重新启动发动机
重写cond%{HTTP_REFERER}!(www.)?facebook.com
重写cond%{HTTP_REFERER}!(www.fb.com)
重写规则^http://www.non-facebook-refer.com [R=301,L]

您的
重写规则
应该包含您要重定向到的规则的完整URL。 例如:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !(www.)?facebook.com
RewriteCond %{HTTP_REFERER} !(www.)?fb.com
RewriteRule ^ http://www.non-facebook-refer.com [R=301,L]
</IfModule>

重新启动发动机
重写cond%{HTTP_REFERER}!(www.)?facebook.com
重写cond%{HTTP_REFERER}!(www.fb.com)
重写规则^http://www.non-facebook-refer.com [R=301,L]

并非所有浏览器都会传递
HTTP\u REFERER
标题,最终用户也可以对其进行修改,使其不可信。这是一种非常不可靠的方法,它们也不是好的正则表达式。除了直接伪造推荐人,他们还可以通过www.fb.com.othersite.example.com进行dns。应使用
$
终止主机名。并非所有浏览器都会通过
HTTP\u REFERER
标题,并且最终用户也可以修改该标题,使其不受信任。这是一种非常不可靠的方法,它们也不是好的正则表达式。除了直接伪造推荐人,他们还可以通过www.fb.com.othersite.example.com进行dns。应该用
$
终止您的主机名。我这样做了,现在网站一直将我重定向到非facebook参考,即使推荐人是facebook我只写非facebook部分,您需要添加其他部分是的,问题出在哪里,请检查最后一个代码可能是https有问题?使用php打印HTTP REFERER标头以检查它是否包含facebook.comi这样做了,现在网站一直将我重定向到非facebook REFERER,即使裁判是facebook我只写非facebook部分,你需要添加其他部分是的,问题出在哪里,请检查最后一个代码可能是https有问题吗?使用php打印HTTP REFERER标头,检查它是否包含facebook.com