簡體   English   中英

只允許來自特定推薦人的用戶(重定向其余的) - HTACCESS

[英]Only allow users from specific referrer (redirect the rest) - HTACCESS

我一直在試圖阻止所有試圖查看 .php 頁面而不來自我的特定跟蹤鏈接的人的訪問。

我希望如果它們不是來自我的鏈接,它們會被重定向到另一個網站。 我嘗試使用 .htaccess 方法如下:

    RewriteEngine On
RewriteBase /

# allow these referers to passthrough
RewriteCond %{HTTP_REFERER} ^http://subdomain.domain.com
RewriteRule ^ - [L]

# redirect everything else
RewriteRule ^ http://anotherDomain.com/ [R,L]

這是因為http://subdomain.domain.com是一個重定向到 website.php 的跟蹤 url,但它似乎不起作用,盡管有任何引用,甚至直接在工具欄中鍵入 website.php 的 url 都在使用用戶到 website.php。

我想要實現的是只有從 subdomain.domain.com 用戶可以看到 website.php

提前致謝。

您可以使用order deny,allow做到這一點,將其放入您的 .htaccess 中:

order deny,allow
deny from all
allow from subdomain.domain.com

這將拒絕每個人的訪問,除非他們通過subdomain.domain.com訪問

然后重定向不是來自subdomain.domain.com的用戶,您可以使用:

RewriteCond %{HTTP_HOST} !^www\.subdomain.domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://www.example.com/$1 [L,R,NE]

對於 Apache 2.4:

您可以使用 IF 指令,因為您使用的是 2.4:

<If "%{HTTP_HOST} != 'www.subdomain.domain.com'">
Redirect / http://www.example.com/
</If>

對於order deny,allow在其周圍添加以下內容:

<Limit GET>
</Limit>

tl;博士

RewriteEngine On
RewriteCond "%{HTTP_REFERER}" "!your-valid-referer.example.com"
RewriteRule ^.*$ - [F]

詳情

  • RewriteCond - 做一個比較:
  • "%{HTTP_REFERER}" - 請求時的當前引用者 反對:
  • "!your-valid-referer.example.com" - 有效的引用者; 如果不是:
  • RewriteRule ^.*$ - 不管它是什么;
  • [F] - 不要訪問它。 分配一個 HTTP 狀態代碼403 aka Forbidden

OP的案例

RewriteEngine On
RewriteCond "%{HTTP_REFERER}" "!subdomain.domain.com"
RewriteRule ^ http://anotherDomain.com/ [R,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM