2013-04-09 78 views
-1

既然我的腳已經被.htaccess弄溼了,我還有一個新問題。在很多教程我已經收藏之一,筆者建議把這段代碼在.htaccess文件的開頭:.htaccess代碼,這個例子很好的編碼習慣嗎?

AddDefaultCharset UTF-8 
RewriteEngine On 
RewriteBase/

我可以理解,避免與第一行解析問題的問題,還等什麼我想知道的是,除了RewriteEngine On還有其他兩種線路是好的做法還是隻是增加了膨脹?

非常感謝!

回答

2

RewriteBase /行有時用於解析目標中的相對URI和/或RewriteRule的模式。例如,如果一個htaccess文件是在/foo目錄,你有可能看起來像這樣的規則:

RewriteEngine On 
RewriteBase /foo/ 
RewriteRule ^bar$ index.php?bar [L] 

這裏,規則的目標index.php?bar是一個相對的URI和基地被前面加上,導致URI:/foo/index.php?bar。當規則的目標是相對的時候,apache會猜測URI是一個文件路徑還是一個URL路徑,並且它並不總是正確猜測。通過RewriteBase /foo/,apache知道/foo/index.php是一個URL路徑。可能有重寫基地與它所在的文件夾不匹配的情況,但結果仍然相同。它充當規則中相對URI的URI基礎。

在沒有傷害的情況下,除非出於某種原因,您希望某些相對URI實際映射到文件路徑。

AddDefaultCharset指令並不適用於該字符集的htaccess文件中,它是Web服務器給予請求時,該請求內容text/html類型或text/plain的響應的一部分。再說一次,除非你是文本或html內容,其實其他編碼(例如* shift_jis *),否則不會傷害你的htaccess文件。

+0

非常感謝!所有的好消息,我想代表該教程作者代表這是一個編碼偏好。優秀! – mileaminute 2013-04-09 01:04:44