2012-07-02 38 views
0

我使用MAMP在我的Mac上開發了一個Web應用程序。該應用程序使用包含在根目錄中的.htaccess文件。在本地MAMP環境下測試時,一切都很好。但是,當我轉移到託管服務器(運行Red Hat Linux的專用服務器)時,我的.htaccess文件中的重寫規則無法正常工作。例如,當用戶登錄到我的站點時,重寫規則將它們視爲它應該爲http://www.mysite.com/authenticate/login(它似乎在.htaccess中的重寫規則起作用)。但是,我得到一個404文件未找到錯誤。任何人都可以看到問題是什麼?這是在.htaccess文件中的代碼:爲什麼我的.htaccess文件在我的本地MAMP測試服務器上正常工作,但在我的Linux生產服務器上不起作用?

ErrorDocument 404 /index.php 
DirectoryIndex index.php 
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 
</IfModule> 
Options -indexes 

回答

1

是在AllowOverride指令在生產服務器上設置是否正確?

http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride

+0

我已通過電子郵件發送我的託管公司以找出答案。應該如何設置AllowOverride?我知道它不應該設置爲無,但除此之外我不確定。我所知道的是,我的網站完全在我本地的MAMP設置上工作,但只會在我的託管服務器上加載主頁。 –

+0

'AllowOverride All'對你來說是安全的。但是不要忘記_explicitly拒絕任何對.htaccess文件的訪問,就像'AllowOverride All'一樣,你也可以在那裏設置安全相關的東西。 –

+0

謝謝。事實證明'AllowOverride All'是服務器上的當前設置,所以不能是問題。你能想出任何其他原因,爲什麼我的.htaccess文件似乎不工作?我99%以上確定這個問題是由於.htaccess文件沒有被服務器識別,但我完全喪失瞭如何解決這個問題。 –

相關問題