Apache http强制转为https页面访问(转)

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
posted @ 2013-07-17 15:26  幻星宇  阅读(13648)  评论(0编辑  收藏  举报