我正在尝试创建一个.htaccess mod_rewrite,如果当前的referer不是我自己的域,它将表现不同。例如,假设我拥有example.com(即www.example.com,http://example.com等)。当有人访问example.com(或beta.example.com这样的子域)时,我想忽略这个.htaccess规则。所以我想正则表达式基本上只是在其中的某个地方寻找example.com并忽略它们。
但是,像otherdomain.com这样的域名(假设通过cname或A-record指向example.com)访问我的网站,我想将它们重定向到某个地方。到目前为止,我所知道的是我认为接近但不起作用。
我对这些规则的主要困惑是RewriteRule之后的部分(在这种情况下为^ $)。我在Googling中看到了一些不同的东西,我不确定这些差异。例如,我也看到了^,a(。*)$等等。
RewriteCond %{HTTP_REFERER} !^http://([^.]+\.)*(example)\.com
RewriteRule ^$ redirectfile.php [L]
我也一直在搞乱
RewriteCond %{HTTP_REFERER} ^http://(.+\.)*\.com
RewriteCond %1 !^(example)\.$
RewriteRule ^$ redirectfile.php [R=302,L]
答案 0 :(得分:2)
尝试
RewriteCond %{HTTP_REFERER} !^http://([^.]+\.)*example\.com
RewriteRule ^ redirectfile.php [L]
你有^$
,只会与主页匹配。
我将其更改为^
只会匹配每个请求,假设您要匹配每个请求。
(.*)$
也会匹配每个请求,但也会捕获匹配项,以便您在目标中重复使用$ 1