mvc 封裝框架之關於 .haccess 文件(一)

Apache中的.htaccess(或者”分佈式配置”了針對目錄改變配置的方法,即,在特定的文檔目錄中放置包含或多個指令的,以作用於此目錄及其子目錄。作爲,所能的命令受到限制。***Apache的AllowOverride指令來設置。

一、.htaccess的基本作用


啓用.htaccess,需要修改httpd.conf,啓用AllowOverride,並可以用AllowOverride限制特定命令的使用
如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來改變。例如,需要使用.config ,則可以在服務器配置文件中按以下方法配置:
AccessFileName .config

籠統地來說,.htaccess可以幫我們實現包括:文件夾密碼保護、用戶自動重定向、自定義錯誤頁面、改變你的文件擴展名、封禁特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,以及使用其他文件作爲index文件等一些功能。

二、.htaccess訪問控制

1、訪問控制基礎:Order命令

爲了限制用戶訪問一些關鍵目錄,通常加入.htaccess文件,常見的寫法如下:

<Files  ~ "^.*.([Ll][Oo][Gg])|([eE][xX][eE])">
 Order allow,deny
 Deny from all
</Files>

說明:

(1)Files後的波浪線表示啓用“正則表達式”,簡單的寫法有:<Files *>。

(2)Order命令:通過Allow,Deny參數,Apache首先找到並應用Allow命令,然後應用Deny命令,以阻止所有訪問,也可以使用Deny,Allow。

三、URL重寫

下面是一段簡單的URL重寫規則示例:

# 將 RewriteEngine 模式打開
RewriteEngine On
# Rewrite 系統規則請勿修改
RewriteRule ^p/([0-9]+).html$ index.php?post_id=$1
RewriteRule ^u-(username|uid)-(.+).html$ space.php?$1=$2

方法一:

<IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)/$ index.php/$1 [QSA,PT,L]
</IfModule>

當然方法二這種也是可以的,可以直接粘貼,進行使用,可以說是萬用的

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule> 

其中,RewriteEngine 表示開啓URL重寫,RewriteRule是重寫規則。

四、自定義錯誤頁
.htaccess的一個應用是自定義錯誤頁面,這將使你可以擁有自己的、個性化的錯誤頁面(例如找不到文件時),而不是你的服務商提供的錯誤頁或沒有任何頁面。這會讓你的網站在出錯的時候看上去更專業。你還可以利用腳本程序在發生錯誤的時候通知你(例如當找不到頁面的時候自動Email給你)。
你所知道的任何頁面錯誤代碼(像404找不到頁面),都可以通過在.htaccess文件里加入下面的文字將其變成自定義頁面:
ErrorDocument errornumber /file.html
舉例來說,如果我的根目錄下有一個notfound.html文件,我想使用它作爲404 error的頁面:
ErrorDocument 404 /notfound.html
如果文件不在網站的根目錄下,你只需要把路徑設置爲:
ErrorDocument 500 /errorpages/500.html
以下是一些最常用的錯誤:
401 – Authorization Required 需要驗證
400 – Bad request 錯誤請求
403 – Forbidden 禁止
500 – Internal Server Error 內部服務器錯誤
404 – Wrong page 找不到頁面

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章