1、介绍
 一般来说,apache2配置好http和https后,如果想要做http强转到https,
 需要设置url重定向规则,大致需要下面几个步骤即可完成配置。2、安装Apache2
 sudo apt-get install apache2
 – 默认站点在 /var/www/
 – 配置文件在 /etc/apache2/
 – 日志在 /var/log/apache/
 – 启动脚本是 /etc/init.d/apache23、etc/apache2下的文件夹与文件
 apache2.conf:Apache的主要配置文件,包含全局配置。
 envvars:Apache2环境变量设置。
 ports.conf:配置Apache监听的端口。
 mods-available:这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。
 mods-enabled:持有/etc/apache2/mods-available目录下文件的链接,当该目录下有一个模块文件和其配置文件,那么Apache重启后该模块将生效。
 sites-available:这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。后面下面配置的时候会配置80端口的http重定向为443的https。
 sites-enabled:持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活。 4、ssl配置
 安装openssl
 sudo apt-get install openssl5、开启ssl模块
 sudo a2enmod ssl
 无效则输入下面两个命令
 sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
 sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf6、进入/etc/apache2/ports.conf
 查看是否有80  和443端口,没有就添加上去 7、在项目根目录下/var/www,创建文件".htaccess",内容如下
 RewriteEngine on
 RewriteBase / 
 RewriteCond %{SERVER_PORT} !^443$
 RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]或者****
/etc/apache2/sites-available/000-default.conf ,
 打开 /etc/apache2/sites-available/000-default.conf ,
 在 <\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行
 RewriteEngine on
 RewriteCond   %{HTTPS} !=on
 RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R=301]8、修改apache统一配置文件里面的"",方法如下:
 cd /etc/apache2/
 sudo vi apache2.conf
  
 # 找到<Directory />那一段,修改一下AllowOverride从None到All
 <Directory />
         Options FollowSymLinks
         AllowOverride All
         Require all denied
 </Directory>
  
 # 找到<Directory /var/www/>那一段,修改一下AllowOverride从None到All
 <Directory /var/www/>
         Options FollowSymLinks
         AllowOverride All
         Require all granted
 </Directory> 9、配置ssl虚拟站点
 如果不想用软链接,可以从sites-available中复制default-ssl.conf到sites-enabled(表示启用的配置),然后修改default-ssl.conf
 SSLCertificateFile  证书地址/2_xxx.crt
 SSLCertificateKeyFile 证书地址/3_xxx.key
 SSLCertificateChainFile 证书地址/1_root_bundle.crt10、启动重定向
 sudo a2enmod rewrite 
 或者
 sudo ln -s /etc/apache2/mods-available/rewrite.load  /etc/apache2/mods-enabled/rewrite.load11、重启apache服务
 sudo service apache2 restart 12、本地hosts文件配置   
 #配置如下:172.16.0.235  xinda.pactera.com 13、访问: http://xinda.pactera.com/ 自动跳转 https://xinda.pactera.com/
 /*************************************************************************************
 * 扩展1、在你的网站根目录下面添加该文件".htaccess"目录访问控制文件,并添加如下内容:
 * RewriteEngine On
 * RewriteCond %{SERVER_PORT} 80
 * RewriteRule ^(.*)$ https://www.orbpi.cn/$1 [R,L]
 * #或者
 * RewriteEngine On 
 * RewriteCond %{SERVER_PORT} 80 
 * RewriteRule ^(.*)$ https://www.orbpi.cn/$1 [R=301,L]
 * #又或者
 *RewriteEngine on
 * RewriteBase /
 * RewriteCond %{SERVER_PORT} !^443$
 * RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
 * #注意:如果是在子目录,可以用
 * RewriteEngine On
 * RewriteCond %{SERVER_PORT} 80
 * RewriteCond %{REQUEST_URI} subfolder
 * RewriteRule ^(.*)$ https://www.orbpi.cn/subfolder [R,L]* 扩展2、上面是对所有的url都转换成https,如果针对某一个url转成https应该进行如下操作
 * 只要求访问http://bo.kevin.com/beijing/ 时强制跳转到https://bo.kevin.com/beijing/,其他的url访问时都不做http到https的强转!
 * 在.htaccess文件中添加下面内容:
 * [root@docker-test2 web]# cat .htaccess
 * <IfModule mod_rewrite.c>
 * RewriteEngine on
 * RewriteBase /
 * RewriteCond %{SERVER_PORT} 80
 * RewriteCond %{HTTP_HOST} ^bo.kevin.com/beijing/ [NC]
 * RewriteRule ^(.*)$ https://bo.kevin.com/beijing/ [R,L]
 * </IfModule>
 * 上面的配置,就实现了只是针对http://bo.kevin.com/beijing/这一个单独的url做https的强制跳转,其他url访问时都不做跳转!* 扩展3、相关命令
 * 查看Apache的运行版本:apachectl -v
 */*******************************************************************************************************