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

遇到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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章