2014-04-16 23 views
0

我剛剛開始使用.htaccess文件,因爲我在共享主機上。我想谷歌:很多有關創建.htaccess文件,少在哪裏,有多少,做規則級聯等對htaccess文件的使用說明

這裏是我的網站地圖:

/www.mysite.com 
| 
| .htaccess 
| index.php 
| 
+---includes 
|   config.php 
|   functions.php 
|   some.class.php 
|   database.class.php 
| 
\---public 
    | .htaccess 
    | index.php 
    +---css 
    |  
    +---js 
    |  
    +---images 
    |  
    +---admin 
      index.php  

我把規則將網站的根目錄(www.mysite.com)重定向到位於根目錄中的.htaccess文件中的公用文件夾。

RewriteEngine On 
RewriteBase/public 

在位於公共文件夾中的.htaccess文件,我把那個刪除規則「/公/」從URL(www.mysite.com/public/index.php ==> www.mysite.com/index.php)。

RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule (.*) /public/$1 

我也有下面的代碼來限制訪問.htaccess文件本身,並拒絕ditectory房源與其他(長)代碼否認機器人一起,設置高速緩存選項,時區等

所有 選項-Indexes -Multiviews

否認難道我只需要把這根.htaccess文件(它涓滴如CSS)?它是否也必須進入公共文件夾.hyaccess文件?

我需要.htaccess文件在我的所有文件夾(包括,js等)嗎?

在包括文件夾.htaccess文件我把代碼:

<Files config.php> 
Order Deny,Allow 
Deny from all 
</Files> 

是正確的地方是什麼?

最後我會密碼保護admin/index.php .htpasswd和.htaccess文件。這是我將添加/刪除用戶的地方。

任何其他建議,非常感謝。

預先感謝您。

回答

0

您的/.htaccess將始終處理,然後沿着行轉到感興趣的目錄(比如腳本正在運行的位置),然後依次處理每個.htaccess。通常情況下,無論是在更高層次上設置還是完成,.htaccess都會被更低級別的.htaccess文件繼承(很像CSS)。可能有例外,但我現在不能拿出任何東西。

當你密碼保護時,它通常是一個完整的目錄及其下的所有內容。密碼保護單個文件可能是可能的,但我還沒有聽說過。這些文件可以通過.htaccess中的訪問控制來保護。

由於目錄從上面繼承了.htaccess定義的設置/保護,所以如果要添加或覆蓋設置,則只需在該目錄中有一個.htaccess文件。例如,你可能有Options -Indexes什麼的,但希望訪問者在該目錄的.htaccess中列出具有Options +Indexes的特定目錄(和所有子目錄)的內容。

RewriteEngine On 
RewriteBase/public 

我不確定你要在這裏做什麼。我只看到一條路徑的RewriteBase。

在位於公共文件夾中的.htaccess文件,我把規則 移除了「/公/」從URL(www.mysite.com/public/index.php ==> www.mysite.com/index.php)。

RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule (.*) /public/$1 

咦? real目錄包含/ public,所以你想重寫一個傳入的非公開URI包含public(即它)?你的代碼看起來很好,如果這是你的意圖。

+0

我正在嘗試將www.mysite.com重定向到www.www.mysite.com/public,但只顯示URL爲「www.mysite.com」 – Ric

+0

然後,您所寫的內容應該可以完成這項工作。你遇到問題了嗎?試試'RewriteBase /'。 –