Apache-2.2
htaccess 以允許從特定使用者代理和 HTTP 引薦來源下載
如果只有使用者代理或推薦人與以下內容匹配,我想允許下載一些文件
這些是使用者代理uTorrent Bittorrent 傳輸
這是 http 推薦人 www.niresh12495.com
我正在嘗試以下程式碼,但顯示錯誤 500
RewriteCond %{HTTP_USER_AGENT} !^(*uTorrent*|*BitTorrent*|*Transmission*) [NC,OR] RewriteCond %{HTTP_REFERER} !^http://niresh12495.com/.*$ [NC,OR] RewriteCond %{HTTP_REFERER} !^http://niresh12495.com$ [NC,OR] RewriteCond %{HTTP_REFERER} !^http://www.niresh12495.com/.*$ [NC,OR] RewriteCond %{HTTP_REFERER} !^http://www.niresh12495.com$ [NC,OR] RewriteRule ^*\.(dmg|torrent|pkg|rar|exe|zip|jpeg|jpg|gif|png|bmp|mp3|flv|swf|png|css|pdf|mpg|mp4|mov|wav|wmv|swf|css|js|iso)$ http://www.niresh12495.com [R,F,NC]
我哪裡錯了?
有多個問題。
- 您的正則表達式中有語法錯誤。您使用
*
的類似於 shell 萬用字元,但在正則表達式中它具有不同的含義:它僅修改另一個字元,表示“0 次或多次出現”。您可能想要的是.*
,意思是“任何字元出現 0 次或多次”。但是,如果您刪除 start anchor tag ,您甚至不需要它^
。- 您的最後一個 RewriteCond 以一個
OR
標誌結束,這可能是無效的,因為沒有其他 RewriteCond 跟隨它。- 我認為你的條件邏輯是錯誤的。你目前有
不是(uTorrent 或 BitTorrent 或傳輸)或不是 niresh12495.com 或不是 www,.niresh12495.com
但我想你想要
不是(uTorrent 或 BitTorrent 或傳輸)並且不是 niresh12495.com 並且不是 www.niresh12495.com
所以我認為你想要更像這樣的東西:
RewriteCond %{HTTP_USER_AGENT} !(uTorrent|BitTorrent|Transmission) [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.|)niresh12495.com(/|$) [NC] RewriteRule .*\.(dmg|torrent|pkg|rar|exe|zip|jpeg|jpg|gif|png|bmp|mp3|flv|swf|png|css|pdf|mpg|mp4|mov|wav|wmv|swf|css|js|iso)$ http://www.niresh12495.com [R,F,NC]