Apache-2.2

Amazon EC2 .htaccess 和 500 錯誤

  • November 21, 2017

我有一個Amazon EC2 (amzn-ami-pv-2013.09.0.x86_64-ebs (ami-149f7863))我安裝的Apache,PHPMySQL.

一切正常,直到我嘗試啟動.htaccess.

我更改AllOverride Allhttp.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>

引用自:https://serverfault.com/questions/555457