APACHE服務器500錯誤解決方法


 

APACHE服務器500錯誤解決方法與強制跳轉

轉 https://blog.csdn.net/u011685720/article/details/48680401

 

遇到500問題 可以如下解決
1.APACHE沒開啟rewrite模塊。
解決辦法:編輯apache的http.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的#,重啟APACHE.
2 .htaccess文件有錯誤。通常是因為寫入了不合語法的規則。
解決辦法:刪除該目錄中的.htaccess即可。如果還是不行,再刪除上級目錄的.htacess,如此反復。
3,權限問題,同時查看/var/log/apache2/error.log日志。

於是我找到了這么一個東西

1
在httpd.conf文件里使下面模塊生效
LoadModule rewrite_module modules/mod_rewrite.so

2
httpd.conf配置文件或者是在httpd-vhost.conf文件里修改

<Directory "C:/Apache2.2/docs/1.com"> Options Indexes FollowSymLinks AllowOverride All //上面是http-https時需要添加的語句 Order allow,deny Allow from all </Directory>

3

在網站根目錄下面添加該文件“.htaccess” 目錄訪問控制文件,並添加如
下內容:

RewriteEngine on #開啟重定向引擎

RewriteBase / #可以不設置

RewriteCond %{SERVER_PORT} !^443$ #非443端口的數據全部進行重定向

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] #把需要重定向的內容重定向到https

.htaccess文件不能在win平台下自己創建,可以使用下面鏈接在線生成該文件:http://www.wangqu.org/htaccess/#a_WWW

RewriteEngine on #開啟重定向引擎

RewriteBase / #可以不設置

RewriteCond %{SERVER_PORT} !^443(或者其他端口)$ #非443端口
的數據全部進行重定向

RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] #
把需要重定向的內容重定向到https

如果是默認不是443端口,那么可以在最后一行寫成這樣
RewriteRule ^.*$ https://www.domain.com:8443

當然如果默認是443的話,也可以這么寫
RewriteRule ^.*$ https://www.domain.com

該 .htaccess 需要放置在網站的根目錄下面才可以生效

含義是這樣的:為了讓用戶訪問傳統的http://轉到https://上來,用了一下
rewrite規則:
第一句:啟動rewrite引擎
第二句:rewrite的條件是訪問的服務器端口不是443端口
第三句:這是正則表達式,^是開頭,$是結束,/?表示有沒有/都可以(0或
1個),(.*)是任何數量的任意字符
整句的意思是講:啟動rewrite模塊,將所有訪問非443端口的請求,url地址
內容不變,將http://變成https://。

5、查看一下httpd.conf,如果以下幾項給注釋掉了,就打開這些選項:
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c

apache出現 internal server error 500錯誤常見原因

ubuntu apache .htaccess 500錯誤500 internal error with RewriteEngine on

系統ubuntu 14.04
原因apache配置沒有載入rewrite模塊,ubuntu中apache的配置模塊和配置虛擬主機是通過a2ensite a2enmod命令,不是直接去修改apache的配置,間接修改apache的配置實現的....這兩個命令的詳細解釋自行man

解決sudo a2enmod rewrite
sudo service apache2 restart

我是從zf2配置.htaccess中遇到這樣的問題

后記

確認ubuntu上rewrite模塊是否安裝: ls /etc/apache2/mods-available | grep rewrite
rewrite.load 有這個文件,默認都有安裝

確認apache配置是否載入 rewrite ls /etc/apache2/mods-enabled | grep rewrite
rewrite.load 有這個文件表示已經載入配置

參考:http://stackoverflow.com/questions/19718919/500-internal-error-with-rewriteengine-on-htaccess-on-localhost-with-wamp

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts


 

PHP在Apache下500錯誤的原因

g糾結了半天,才發現問題的症結:原來的PHP 關閉了錯誤的顯示。

下面講解如何開啟錯誤提示步驟:

1. 打開php.ini文件。
以我的ubuntu10.10為例,這個文件在: /etc/php5/apache2 目錄下。

2. 搜索並修改下行,把Off值改成On
display_errors = Off

3. 搜索下行
error_reporting = E_ALL & ~E_NOTICE
或者搜索:
error_reporting = E_ALL & ~E_DEPRECATED
修改為
error_reporting = E_ALL | E_STRICT

4. 修改Apache的 httpd.conf,
以我的 Ubuntu 為例, 這個文件在:/etc/apache2/  目錄下,這是一個空白文件。
添加以下兩行:
php_flag display_errors        on
php_value error_reporting       2039

5. 重啟Apache,就OK了。
重啟命令: :sudo /etc/init.d/apache2 restart


thinkphp6又一個坑 apache偽靜態 .htaccess在本地調試500錯誤問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM