溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php設(shè)置https的方法

發(fā)布時間:2020-10-16 14:07:40 來源:億速云 閱讀:759 作者:小新 欄目:編程語言

php設(shè)置https的方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

php設(shè)置https的方法:首先設(shè)置“httpd.ini”并添加相關(guān)配置;然后將“httpd-ssl.conf”里面的“VirtualHost”配置完整路徑;最后使http重定向到https即可。

設(shè)置https以及http轉(zhuǎn)https的問題

公司用的是阿里云服務(wù)器win2008server r2 ,環(huán)境是phpwamp,出現(xiàn)許多問題。2018-11-12

一 設(shè)置https

1、設(shè)置httpd.ini 取消以下三個配置的#

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 
LoadModule ssl_module modules/mod_ssl.so 
Include conf/extra/httpd-ssl.conf

2、并且注意 httpd-ssl.conf里面的VirtualHost配置要用完整路徑,支持多個https同時使用

例如這樣既可:

#百度官方網(wǎng)站
<VirtualHost *:443>    
    DocumentRoot "D:/WWW/baidu/public/"    
    ServerName www.baidu.com:443  
    SSLEngine on    
    SSLCertificateFile          D:/ssl/www.baidu.com/www.baidu.com.cer  
    SSLCertificateKeyFile       D:/ssl/www.baidu.com/www.baidu.com.key    
    SSLCertificateChainFile     D:/ssl/www.baidu.com/www.baidu.com_ca.crt  
</VirtualHost>
#淘寶官方網(wǎng)站
<VirtualHost *:443>
    DocumentRoot "D:/WWW/taobao/public/"    
    ServerName www.taobao.com:443  
    SSLEngine on    
    SSLCertificateFile          D:/ssl/www.taobao.com/www.taobao.com.cer  
    SSLCertificateKeyFile       D:/ssl/www.taobao.com/www.taobao.com.key    
    SSLCertificateChainFile     D:/ssl/www.taobao.com/www.taobao.com_ca.crt  
</VirtualHost>
<VirtualHost _default_:443>
    DocumentRoot "C:/*****/PHPWAMP_IN2/wwwroot/test"
    ServerName www.test.com:443
    ServerAlias test.com
    DirectoryIndex index.html index.htm index.php default.php app.php u.php
    ErrorLog logs/example_error.log
    CustomLog logs/example_access.log \
    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    SSLEngine on
    SSLCertificateFile "C:/**************.com_public.crt"
    SSLCertificateKeyFile "C:/**********.com.key"
    SSLCertificateChainFile "C:/*****.com_chain.crt"
<Directory "C:/*****/PHPWAMP_IN2/wwwroot/test">
    SSLOptions +StdEnvVars
    AllowOverride All
    Require all granted
</Directory>
<FilesMatch "\.(shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
    BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
</VirtualHost>

上圖是phpwamp軟件配置ssl的代碼(***是目錄路徑和文件名 ,這里抹除)

最后要注意的是,查看httpd-ssl.conf文件里面所使用的443端口是否被占用,如果被占用Apache也會啟動失敗。

3、因?yàn)槭前⒗镌?a title="服務(wù)器" target="_blank" href="http://kemok4.com/">服務(wù)器,所有需要在阿里云后臺管理開啟443端口

4、在服務(wù)器上的防火墻增加入站規(guī)則 443

留意SSLCertificateChainFile的地址配置,三個ssl路徑地址中任何一個路徑錯誤都會造成apache的啟動失敗,如有問題,請重點(diǎn)排查這處。

二 http重定向到https

當(dāng)你的站點(diǎn)使用了HTTPS之后,你可能會想把所有的HTTP請求(即端口80的請求),全部都重定向至HTTPS(即端口443)。這時候你可以用以下的方式來做到:(Apache mod_rewrite)

把這段代碼放在.htaccess文件(網(wǎng)站根目錄下),即可實(shí)現(xiàn)HTTP到HTTPS的重定向。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.baidu.com/$1 [R=301,L]
</IfModule>

而當(dāng)你又想用回HTTP的時候,反過來就可以了:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} 443
RewriteRule ^(.*)$ https://www.baidu.com/$1 [R=301,L]
</IfModule>

其中R=301表示Moved Permanently,即告訴搜索引擎或者瀏覽器下去直接訪問后者的地址,

如果只是試驗(yàn)性地重定向,可以使用R=302(Found),臨時跳轉(zhuǎn)

感謝各位的閱讀!看完上述內(nèi)容,你們對php設(shè)置https的方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI