0
我的網站通過包含來自'網頁'目錄(PHP)的頁面來工作,並且我想禁止訪問該目錄中的文件。但是,當我將.htaccess文件放在那裏說:deny from all
時,它禁止訪問所有文件,而不僅僅是一個請求來創建文件或使用樣式表。rewritecond檢查其腳本或客戶端
我也嘗試帶給用戶到另一個頁面,當他們嘗試看看那些文件,像這樣:
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} \.css[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} \.js[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
而且這樣的作品,它只是沒有讓樣式表/ JS被加載。它確實讓PHP文件包含在內,但沒有被查看,這很好,所以我保留了這三個中的第三個。但是我的css文件包含有關我的文件結構的信息,我不想向黑客透露。所以,我不希望這些公開可用。
反正...我的問題是:
是否有RewriteCond
我可以把在前面,如果最後兩個,使它們只適用,如果請求是從客戶端來了嗎?
即
RewriteCond %{THE_REQUEST} IS_COMING_FROM_A_CLIENT_OR_BROWSER
RewriteCond %{THE_REQUEST} \.css[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} IS_COMING_FROM_A_CLIENT_OR_BROWSER
RewriteCond %{THE_REQUEST} \.js[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
P.S.我寧願不通過deny from all
這樣做,如果可能的話,因爲我在共享主機上,他們可能不會那樣。
您如何知道何時來自客戶? – 2013-02-20 03:43:41
該網站仍在開發中。我知道,因爲我把它輸入到我的地址欄中。 – KFox 2013-02-20 03:48:06
嗯,我想你知道,但我的問題是試圖確定客戶的請求和其他任何之間的差異。必須有一些東西來識別傳入的URL,否則不可能用'RewriteCond'來過濾它們,而你的問題的答案將是NO。 – 2013-02-20 03:54:06