2015-11-03 63 views
1

我有一個WordPress的安裝網站,我用modrewrite來顯示乾淨的網址。我想這是從Facebook正在添加訪問該網站的訪問者,而重定向到其他的人,我做了一個,它的工作,但我不知道如何拒絕的訪問者重定向到其他站點只允許在特定引用者訪問.htaccess

# 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] 
+1

並非所有瀏覽器通過'HTTP_REFERER'頭和它也可以由最終用戶修改的,因此它不能被信任。因爲這是一個非常不可靠的方式來做到這一點。 – cmorrissey

+0

那些也不是很好的正則表達式。除了直接僞造引薦人外,他們還可以做他們的dns,如www.fb.com.othersite.example.com。應該用'$'終止你的主機名。 –

回答

0

您的RewriteRule應該有一個您想要重定向到的完整網址。 例如:

<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> 
+0

我做到了,現在該網站不斷將我重定向到非facebook-refer,即使裁判是facebook –

+0

我只寫了非facebook部分,您需要添加其他部分 –

+0

是的,我做了,問題在哪裏? ,請查詢最後的代碼 –

相關問題