首頁  >  問答  >  主體

Apache的.htaccess的目錄加密中單獨給某個檔案設定不需要密碼

非常簡單的要求。
在網站中用.htaccess對管理目錄進行了加密。但是由於某些原因,部分檔案需要不輸入密碼直接存取。
前提,不能移動文件,只能修改.htaccess來達到要求。
當然,由於只是部分文件,數量很少,所以即使是需要確定的文件名也是可以接受的。當然如果能給某一類後綴的都開放權限的話更好。

为情所困为情所困2713 天前583

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-05-16 17:06:41

    既然你是希望一類後綴開放的話,那實現起來就容易多了,比如只希望 .txt可以被訪問

    <filesMatch "(?<!\.txt)$">  #hint: pcre look behind
        AuthUserFile /home/felix021/wwwroot/test/.htpasswd
        AuthName "Secret Stuff" 
        AuthType Basic
        require valid-user   
    </filesMatch>
    忽略後面的,僅供參考

    下面是之前想到的比較囉嗦的做法。

    先執行這個指令獲得所有的檔案副檔名:

    find -type f -exec basename {} ; | cut -d. -f2 | sort | uniq

    例如輸出

    jpg
    js
    txt
    php
    png

    例如希望txt不需要密碼,其他都需要,然後修改.htaccess:

    <filesMatch "\.(jpg|js|php|png)$">  #这里不写txt
        AuthUserFile /home/felix021/wwwroot/test/.htpasswd
        AuthName "Secret Stuff" 
        AuthType Basic
        require valid-user   
    </filesMatch>

    回覆
    0
  • 取消回覆