Amazon EC2 .htaccess 和 500 錯誤
我有一個
Amazon EC2 (amzn-ami-pv-2013.09.0.x86_64-ebs (ami-149f7863))
我安裝的Apache
,PHP
和MySQL
.一切正常,直到我嘗試啟動
.htaccess
.我更改
AllOverride All
並http.conf
重新啟動 Apache 服務。當我添加文件時,即使 htaccess 無效,
.htaccess
我也會收到一個。500 Internal Server Error
mod_rewrite.so 模組已載入
如果我刪除 htaccess 一切正常。
我做錯了什麼?
–已編輯–
這是 .htaccess 內容
RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond %{HTTP_HOST} ^mywebsite.com RewriteRule (.*) http://www.mywebsite.com/$1 [R=301,L]
但即使我離開 htaccess 文件而沒有內容,它也會返回 500 錯誤。
虛擬主機定義如下:
<VirtualHost *:80> ServerAdmin webmaster@mywebsite.com DocumentRoot /var/www/html/mywebsite.com ServerName mywebsite.com </VirtualHost>
–EDITED-2-
很抱歉,我只從命令行創建了 .htaccess 文件來解決這個問題。現在它起作用了。真的很感謝你幫助我。
–結束-編輯–
謝謝
你的 Apache 錯誤日誌是怎麼說的?
.htaccess
您的網站在沒有就位的情況下載入,對嗎?以我的經驗,當連接到 500 錯誤時,
.htaccess
它可能就像.htaccess
文件本身在文件系統上被修改一樣簡單。我建議刪除實際文件並創建一個新的.htaccess
. 如果仍然顯示 500 錯誤,則.htaccess
逐行註釋掉每一行並重新載入頁面。至少在一行中可能有一些奇怪的東西,這將顯示出來。**編輯:**自從您添加內容後,我仔細查看了您的
.htaccess
內容,並認為我發現了問題。將其更改為如下所示:Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) http://www.mywebsite.com/$1 [L,R=301]
您的 RewriteCond 格式似乎會窒息。此外,我將其調整為以人類形式閱讀的方式:
如果此請求不是到www.mywebsite.com , 則將其重定向到 www.mywebsite.com。
這樣,您就可以清楚地抓住任何不
www.mywebsite.com
存在的東西並將它們發送到正確的域。此外,在您的 Apache 配置中,我建議
ServerAlias
使用www.mywebsite.com
. 似乎您正在使用NameVirtualHost
,因此將主伺服器名稱www.mywebsite.com
與別名一起使用是mywebsite.com
最有意義的。<VirtualHost *:80> ServerAdmin webmaster@mywebsite.com ServerName www.mywebsite.com ServerAlias mywebsite.com DocumentRoot /var/www/html/mywebsite.com </VirtualHost>