Apache mod_rewrite实现HTTP和HTTPS重定向跳转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache mod_rewrite实现HTTP和HTTPS重定向跳转相关的知识,希望对你有一定的参考价值。

当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443)。这时候你可以用以下的方式来做到:(Apache mod_rewrite)

1
2
3
4
5
6
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{SERVER_PORT} 80
 RewriteRule ^(.*)$ https://jb51.net/$1 [R=301,L]
</IfModule>

把这段代码放在.htaccess文件,即可实现HTTP到HTTPS的重定向。

而当你又想用回HTTP的时候,反过来就可以了:

1
2
3
4
5
6
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{SERVER_PORT} 443
 RewriteRule ^(.*)$ http://jb51.net/$1 [R=301,L]
</IfModule>

其中R=301表示Moved Permanently,即告诉搜索引擎或者浏览器下去直接访问后者的地址,如果只是试验性地重定向,可以使用R=302(Found)。

FROM: http://www.jb51.net/article/67554.htm

另一种方法:

https://www.cnblogs.com/cnbing/p/6957157.html

以上是关于Apache mod_rewrite实现HTTP和HTTPS重定向跳转的主要内容,如果未能解决你的问题,请参考以下文章

Apache2 - 使用 mod_rewrite 代理到另一个域

Apache mod_rewrite 和 PHP GET 数组

如何在 apache 上用 mod_rewrite 重写我的 url?

mod_rewrite

Apache mod_rewrite:仅当不在本地主机中时才强制 www

mod_rewrite 在 apache 2.4 上无法正常工作