一 设置https
1、设置httpd.ini 取消以下三个配置的#
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf2、并且注意 httpd-ssl.conf里面的VirtualHost配置要用完整路径,支持多个https同时使用
例如这样既可:
#百度官方网站 <VirtualHost *:443> DocumentRoot "D:/WWW/baidu/public/" ServerName HdhCmsTestbaidu测试数据:443 SSLEngine on SSLCertificateFileD:/ssl/HdhCmsTestbaidu测试数据/HdhCmsTestbaidu测试数据.cer SSLCertificateKeyFile D:/ssl/HdhCmsTestbaidu测试数据/HdhCmsTestbaidu测试数据.key SSLCertificateChainFileD:/ssl/HdhCmsTestbaidu测试数据/HdhCmsTestbaidu测试数据_ca.crt </VirtualHost> #淘宝官方网站 <VirtualHost *:443> DocumentRoot "D:/WWW/taobao/public/" ServerName HdhCmsTesttaobao测试数据:443 SSLEngine on SSLCertificateFileD:/ssl/HdhCmsTesttaobao测试数据/HdhCmsTesttaobao测试数据.cer SSLCertificateKeyFile D:/ssl/HdhCmsTesttaobao测试数据/HdhCmsTesttaobao测试数据.key SSLCertificateChainFileD:/ssl/HdhCmsTesttaobao测试数据/HdhCmsTesttaobao测试数据_ca.crt </VirtualHost><VirtualHost _default_:443> DocumentRoot "C:/*****/PHPWAMP_IN2/wwwroot/test" ServerName HdhCmsTesttest测试数据:443 ServerAlias test测试数据 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:/**************测试数据_public.crt" SSLCertificateKeyFile "C:/**********测试数据.key" SSLCertificateChainFile "C:/*****测试数据_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>留意SSLCertificateChainFile的地址配置,三个ssl路径地址中任何一个路径错误都会造成apache的启动失败,如有问题,请重点排查这处。
二 http重定向到https
当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443)。这时候你可以用以下的方式来做到:(Apache mod_rewrite)
把这段代码放在.htaccess文件(网站根目录下),即可实现HTTP到HTTPS的重定向。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://HdhCmsTestbaidu测试数据/$1 [R=301,L] </IfModule>而当你又想用回HTTP的时候,反过来就可以了:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 443 RewriteRule ^(.*)$ https://HdhCmsTestbaidu测试数据/$1 [R=301,L] </IfModule>其中R=301表示Moved Permanently,即告诉搜索引擎或者浏览器下去直接访问后者的地址,
如果只是试验性地重定向,可以使用R=302(Found),临时跳转
以上就是关于php设置https的问题的详细内容!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did53540
关于php设置https的问题
阅读:39次