[英]Amazon EC2 .htaccess 500 internal error
我有一個帶有簡單PHP網站的Amazon EC2實例。 它在我的本地PHP服務器上運行正常,但是在AWS上查看時,出現500 Internal Server Error。 我認為htaccess文件有問題,但我無法弄清楚。
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /([^/]+)/?$ [NC]
RewriteRule (.*)\.html application/index.php?key=$1 [L]
RewriteRule ^$ application/index.php?key=index [L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
當我注釋掉最后兩行時,我沒有收到錯誤,但是我仍然需要這個來訪問我的PHP代碼。
預先感謝您的寶貴時間。
我注意到了一些常見問題
- 確保在Apache配置中啟用了mod_rewrite。
#On ubuntu os you can try it like this
sudo a2enmod rewrite
sudo service apache2 restart
- 檢查網站的主要Apache配置文件。 對於服務器上的主域,通常為:
Ubuntu和Debian:/etc/apache2/apache2.conf
CentOS 7:/etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
- 如果仍然遇到相同的問題,則刪除.htaccess文件並從命令中再次創建它,因為一段時間的文件字符編碼問題會導致此類問題。 例如,在您的Apache日志中,您可能會看到此類錯誤
/.htaccess:無效的命令“ \\ xef \\ xbb \\ xbf ##”,可能是拼寫錯誤或由服務器配置中未包含的模塊定義的
要解決此類字符編碼問題,請在刪除.htaccess文件后轉到您的根目錄,然后再次按以下方式創建此文件:
nano .htaccess
# or you can use any other editor like ## vi .htaccess
現在,將您的.htaccess文件代碼放入打開的文件中。
嘗試以下規則:
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)\.html$ application/index.php?key=$1 [L,QSA]
RewriteRule ^$ application/index.php?key=index [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^([^.]+?)/?$ $1.html [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.