2013-04-06 45 views
1

爲標題的,我有我的.htaccess文件的問題,一切都應該被設定罰款,但我寫的東西基本是錯誤500的.htaccess的編輯,但mod_rewrite的加載

RewriteEngine on 

它開始給我那個不錯的500內部服務器錯誤。我在Apache服務器上的本地主機上託管(UNIX)

顯然,我三重檢查了一切設置正常,並且加載了所有mod_rewrite的頂部。

感謝您的寶貴幫助!

+0

是mod_rewrite嗎? – 2013-04-06 09:46:25

+0

當我加載phpinfo() – 2013-04-06 10:09:09

+0

時,它就是加載的方法當.htaccess出現錯誤或未定義代碼時,通常會發生內部服務器錯誤。也許問題出在你的代碼上。你應該完成你所需要的,比如請求a.html和發佈b.html,看看問題是否存在。謝謝 – 2013-04-06 10:14:52

回答

4

如果每一個類型的指令可以將文件中(即緩存,FilesMatchErrorDocument,等等),還有,我能想到的,現在兩個可能的選項出現錯誤:

  1. 您的.htaccess文件的編碼與您正在運行的服務器不兼容。嘗試將其轉換爲ANSI,然後重試(Apache不支持Byte Order Marks,因此您需要將其保存爲ANSI或UTF-8,而不包含BOM)。如果這不起作用:

  2. AllowOverride設置不正確,或根本沒有設置。如果您有權訪問虛擬主機/目錄配置,則需要通過在<Directory>容器中添加行AllowOverride All來啓用它。

+0

1.是的,我用UTF-8編碼; 2.我已經這樣做(我taliking有關httpd.conf文件) ' 有FollowSymLinks 設置AllowOverride所有 訂單拒絕,允許 所有 ' – 2013-04-06 12:25:27

+0

拒絕而讓你確信有沒有BOM?您可以檢查Apache錯誤日誌中的錯誤。 – 2013-04-06 13:53:30

+0

如果您將文件留空,會發生什麼情況? – 2013-04-06 14:02:53

0

當您嘗試刪除代碼RewriteEngine on且URL重新映射或URL重定向仍然正常運行時,則不必將該代碼放入您的.htaccess文件中,因爲您的HTTP服務器已配置爲重寫引擎打開。但是,如果您嘗試刪除它並重寫或重定向站點,則必須在您的問題中包含所有.htaccess代碼。那麼如果它是空的,那麼爲什麼你需要打開RewriteEngine on,如果你不打算申請一個RewriteRule

你有沒有試過這樣:

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule ^notexist.html$ /index.html 

並嘗試訪問yourdomain.com/notexist.html如果它的URL重新映射到/index.html

+0

不,它不工作。 RewriteEngine on RewriteRule^index.html $ index.php 這就是我所擁有的一切,只是讓我可以試試看它是否有效。 – 2013-04-06 11:01:33

+0

你是否嘗試重寫「事端」? – 5ervant 2013-04-06 11:04:33

+0

嘗試我的新更新,如果沒有工作,那麼首先刪除'Options + FollowSymlinks',如果它仍然不工作'然後嘗試刪除'RewriteEngine on'並檢查結果。 – 5ervant 2013-04-06 11:16:32