請教.htaccess設定防外連該如何設定例外子目錄?

hglhgl
edited 十月 2013 in 伺服器環境
一般我們在設定防外連會在主目錄設定如此..

SetEnvIfNoCase Referer "^http://url\.com/"; ref=1
SetEnvIfNoCase Referer "^http://ip\.com/"; ref=1

<FilesMatch "\.(副檔名|副檔名)$">
Order allow,deny
Allow from env=ref
Allow from 127.0.0.1
</FilesMatch>

如果我在主目錄這樣設定..
那麼如果要設定某個子目錄下是不受上面約束的,那讓如何設定呢?
謝謝...

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3211

評論

  • edited 二月 2008
    多幾條 SetEnvIfNoCase 試試,xxx 就是你想要使用的目錄
    SetEnvIfNoCase Referer "^http://url\.com/xxx"; ref=1
    SetEnvIfNoCase Referer "^http://ip\.com/xxx"; ref=1
  • hglhgl
    edited 二月 2008
    您好..
    我試過一樣不行..
    外部同樣不能連結指定目錄的檔案..
  • edited 二月 2008
    恩,搞錯意思 ~^^||

    直接在你想要開放的目錄新增一個 .htaccess ,開放所有人存取就可以了:
    <FilesMatch "\.*$">
    Allow from All
    </FilesMatch>
  • hglhgl
    edited 二月 2008
    您好,
    我照您的方法成功了,謝謝!

    另外想請教禁止檔案類型被開啟的問題,
    一般我們不想一個目錄的某個檔案類型"被開啟",我們會使用如下
    <filesmatch "\.cgi|php">
    order allow,deny
    deny from all
    </filesmatch>
    但不是想要指定當前目錄,而是下一層某個指定目錄..

    我將問題做個總結實例..
    我有a/b/c三層目錄
    我在b目錄放.htaccess,指定下一層c目錄裡的某檔類型不被開啟..

    正常來講,我們應該都會直接將.htaccess放在c目錄才對,但如果有
    其他考量希望放在上一層的b目錄的話,不知道可不可行?
    謝謝您!
  • edited 二月 2008
    查一下 <Directory xxx> 怎麼用....
  • hglhgl
    edited 二月 2009
    您好,另外有個問題想請教..
    我希望在主目錄下所有的exe,zip,rar不能外連,
    但希望其下之其中一個子目錄可允許rar外連,這麼一來,在該子目錄中要如何設定呢?

    我目前的作法無法成功..
    假設我在主目錄副檔名設定項目如下:

    <FilesMatch "\.(exe|zip|rar)$">
    Order allow,deny
    Allow from env=ref
    Allow from 127.0.0.1
    </FilesMatch>


    而該子目錄設定如下:

    <FilesMatch "\.(exe|zip)$">
    Order allow,deny
    Allow from env=ref
    Allow from 127.0.0.1
    </FilesMatch>

    但這麼一來,rar似乎依然會受主目錄設定的影響,無法外連,
    不知應該如何設定呢?謝謝!
  • hglhgl
    edited 二月 2009
    自己推一下..謝謝!
Sign In or Register to comment.