Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 $服务器[';HTTP#u REFERER';]和RewriteCond%{HTTP#u REFERER}显示不同的数据_Apache_.htaccess_Mod Rewrite_Http Referer - Fatal编程技术网

Apache $服务器[';HTTP#u REFERER';]和RewriteCond%{HTTP#u REFERER}显示不同的数据

Apache $服务器[';HTTP#u REFERER';]和RewriteCond%{HTTP#u REFERER}显示不同的数据,apache,.htaccess,mod-rewrite,http-referer,Apache,.htaccess,Mod Rewrite,Http Referer,为什么它不工作 .htaccess: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} !^example\.com RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] RewriteRule ^page([0-9]+).html$ index.php?page=$1 RewriteRule ^p([0-9]+)-([a-zA-Z0-9_]+).html$ index.php?i

为什么它不工作

.htaccess:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^example\.com
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

RewriteRule ^page([0-9]+).html$ index.php?page=$1

RewriteRule ^p([0-9]+)-([a-zA-Z0-9_]+).html$ index.php?id_post=$1&title_post=$2
RewriteRule ^([a-zA-Z0-9_\-]+)/page([0-9]+).html$ index.php?mpoint=$1&page=$2 [L]
RewriteRule ^([a-zA-Z0-9_\-]+).html$ index.php?mpoint=$1
RewriteRule ^.*.html$ index.php?mpoint=$1


RewriteCond %{HTTP_REFERER} ^www.example111.com$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^example222.ml$ 
RewriteRule .* – [F]
index.php

echo $_SERVER['HTTP_REFERER'];

结果:
http://www.example111.com/xxxx/yyy.html

这是因为您的
RewriteCond
模式中有
$
。它将比赛锚定到底。所以

^example222.ml$
将匹配精确的字符串
example222.ml
,但此处的情况并非如此。尝试:

RewriteCond %{HTTP_REFERER} ^(www\.)?example111\.com [NC]
RewriteRule ^ – [F]

@user3572969这些指令也应该放在.htaccess文件的顶部附近,然后再进行其他重写。是的,我尝试了这个变体。还是不行。也许你有什么问题?@user3572969嗯,这很奇怪。
example111.com
不是你自己的域名吗?example111.com不是我的域名