2012-01-22 44 views
0

我的.htaccess文件無法正常工作。我已經檢查過它在根目錄下。我也證實它的代碼是正確的。當我在.htaccess中輸入隨機字母/數字時,我不會收到500錯誤。當我打開我的Apache錯誤日誌,它給了我這個錯誤:.htaccess按預期工作

[Mon Jan 16 20:28:37 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] 
[Mon Jan 16 20:28:41 2012] [notice] Digest: generating secret for digest authentication ... 
[Mon Jan 16 20:28:41 2012] [notice] Digest: done 
[Mon Jan 16 20:28:44 2012] [notice] Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations 

我不知道該怎麼做。

的http.conf:

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
Order deny,allow 
Deny from all 
</Directory> 
+1

「不工作」是什麼意思?預期的行爲是什麼?那實際的行爲是什麼?你的'.htaccess'文件的內容是什麼? – Arjan

+0

@Arjan請看我更新的問題。謝謝 – kirby

+0

「'你的.htaccess文件的內容是什麼?'」 – Gerben

回答

3

有幾個可能的原因您隨機的,無效的,.htaccess文件不會造成HTTP錯誤500(內部服務器錯誤):

  • 不正確的文件名。它必須是.htaccess。第一個字符是一個點。最後一個字符是小寫's'。隱藏的擴展名可能會導致問題,因爲不正確的文件名似乎是正確的。
  • 文件位置不正確。嘗試將文件放在您的html文件旁邊,放在同一個文件夾中。如果有效,你可以將文件移動到一個文件夾並重試。
  • Apache配置不允許使用.htaccess文件。如果配置選項AllowOverride在apache配置文件(對於指定域)中設置爲None,那麼Apache將不會查找任何.htaccess文件。

另請注意,當您使用file://協議訪問文件時,將忽略.htaccess文件。

更新

.htaccess使用的路徑是指文件系統路徑,而不是URL路徑。根據您發佈的.htaccess內容,沒有人可以訪問您的網絡服務器上的任何文件。我建議是這樣的:

<Directory /> 
    # Security first, deny everything that's not explicitly allowed. 
    AllowOverride None 
    Order deny, allow 
    Deny from all 
</Directory> 

<Directory /path/to/webroot> 
    # This is the part that should be accessible 
    Options FollowSymLinks 
    AllowOverride All 
    Order allow, deny 
    Allow from all 
</Directory> 

.htaccess文件應/path/to/webroot 請注意,你應該改變/path/to/webroot的東西合理匹配你的文件系統。

+0

我已經驗證了所有這些,仍然沒有500錯誤。還能有其他什麼嗎?我不需要在我的html文件中包含任何內容,對吧?我只是將.htaccess放在我的根目錄中。 – kirby

+0

還有另外兩個http。配置文件在我的apache2文件夾中,http.conf.save和http.conf.save.1。我只想驗證這些文件不會改變任何內容。我沒有創建這些文件。只有那裏。 – kirby

+0

這些文件可能是備份文件,它們不應該受到傷害。 – Arjan