<IfModule rewrite_module>
RewriteEngine on
RewriteRule ^((?:bootstrap|css|img|js||MathJax|video)/.*)(-V\d+)(.*)$ $1$3 [QSA,PT,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
概述來說,htaccess文件是
Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以幫我們實現:網頁
301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。
Unix、Linux系統或者是任何版本的Apache Web服務器都是支持.htaccess的,但是有的
主機服務商可能不允許你自定義自己的.htaccess文件。
啟用.htaccess,需要修改httpd.conf,啟用AllowOverride,並可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來改變。例如,需要使用.config ,則可以在服務器配置文件中按以下方法配置:AccessFileName .config 。
籠統地說,.htaccess可以幫我們實現包括:文件夾密碼保護、用戶自動
重定向、自定義錯誤頁面、改變你的
文件擴展名、封禁特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,以及使用其他文件作為index文件等一些功能。
.htaccess文件(或者"分布式配置文件")提供了針對每個目錄改變配置的方法,即在一個特定的目錄中放置一個包含指令的文件,其中的指令作用於此目錄及其所有子目錄。
說明
如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來改變。例如,需要使用.config ,則可以在服務器配置文件中按以下方法配置:
AccessFileName .config
通常,.htaccess文件使用的配置語法和主配置文件一樣。AllowOverride指令按類別決定了.htaccess文件中哪些指令才是有效的。如果一個指令允許在.htaccess中使用,那么在本手冊的說明中,此指令會有一個覆蓋項段,其中說明了為使此指令生效而必須在AllowOverride指令中設置的值。
例如,本手冊對AddDefaultCharset指令的闡述表明此指令可以用於.htaccess文件中(見"作用域"項),而覆蓋項一行是FileInfo ,那么為了使.htaccess中的此指令有效,則至少要設置 AllowOverride FileInfo 。
優缺點
采用.htaccess文件的優缺點:
通常網絡管理員采用.htaccess文件來進行用戶組的目錄權限訪問控制。沒有必要將所有的HTTPd服務器、配置文件以及目錄訪問權限全部授權給 管理員。利用當前目錄的.htaccess文件可以允許管理員靈活的隨時按需改變目錄訪問 策略。
采用.htaccess的缺點在於:當系統有成百上千個目錄,每個目錄下都有對應的.htaccess文件時,網絡管理員將會對如何配置全局訪問策略無從下手。同時,由於.htaccess文件十分被容易覆蓋,很容易造成用戶上一時段能訪問目錄,而下一時段又訪問不了的情況發生。最后,.htaccess文件也很容易被非授權用戶得到,安全性不高。
通常網絡管理員采用.htaccess文件來進行用戶組的目錄權限訪問控制。沒有必要將所有的HTTPd服務器、配置文件以及目錄訪問權限全部授權給 管理員。利用當前目錄的.htaccess文件可以允許管理員靈活的隨時按需改變目錄訪問 策略。
采用.htaccess的缺點在於:當系統有成百上千個目錄,每個目錄下都有對應的.htaccess文件時,網絡管理員將會對如何配置全局訪問策略無從下手。同時,由於.htaccess文件十分被容易覆蓋,很容易造成用戶上一時段能訪問目錄,而下一時段又訪問不了的情況發生。最后,.htaccess文件也很容易被非授權用戶得到,安全性不高。