我是靠谱客的博主 健壮早晨,最近开发中收集的这篇文章主要介绍Apache 2.4 将域名指向www及默认跳转https的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于单个域名的ssl证书来说,我们只能用在单一的common name上,例如www.mydomain.com,而mydomain.com或者eagle.mydomain.com是没有办法使用的。除非我们购买了wildcard的证书,否则我们需要使用Apachemod_rewrite来达到跳转到ssl证书所保护的地址上。

我们需要达到的效果:将所有对于mydomain.com/any/file/pathhttp://www.mydomain.com/any/file/path的请求跳转到对应的https://www.mydomain.com/any/file/path


要完成以上的步骤,我们需要使用apachevhosts。这里默认我们已经建立了ssl版本的vhost文件,并且https://www.mydomain.com可以正常访问。本文使用的环境是Ubuntu 16.04 + Apache 2.4,如果你的apache版本较老,请根据官方文档做相应调整。

基本的思路就是新建www.mydomain.com.conf这个vhosts文件,然后添加上Rewrite Rules

好了,那我们就开始。首先从默认的vhosts文件复制出我们需要的配置文件:

$ cd /etc/apache2/sites-available
$ ls -l
000-default.conf default-ssl.conf
$ cp 000-default.conf www.mydomain.com.conf

接下来我们修改www.mydomain.com.conf

$ vim www.mydomain.com.conf
<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    RewriteEngine On
    RewriteRule ^/(.*)$ https://www.mydomain.com/$1 [R=301]
</VirtualHost>

这样一来www.mydomain.com的跳转就配置好了,接下来我们运行

$ a2ensite www.mydomain.com
$ systemctl restart apache2

完成后我们所有对于mydomain.comhttp://www.mydomain.com的请求都会默认跳转至https://www.mydomain.com上了。


那么如果我们仅仅是需要将mydomain.com的请求全部跳转至www.mydomain.com呢?

也很简单,我们只需要创建www.mydomain.com.confmydomain.com.conf这两个vhosts文件,然后在mydomain.com.conf添加我们的Rewite Rules

$ vim mydomain.com.conf
<VirtualHost *:80>
    ServerName mydomain.com
    RewriteEngine On
    RewriteRule ^/(.*)$ www.mydomain.com/$1 [R=301]
</VirtualHost>

然后www.mydomain.com.conf中正常填写我们的配置即可:

$ vim www.mydomain.com.conf
<VirtualHost *:80>
    ServerName www.mydomain.com
    # Your other options go here...
</VirtualHost>

完成后,输入以下命令就可以了:

$ a2ensite www.mydomain.com
$ a2ensite mydomain.com
$ systemctl restart apache2

最后

以上就是健壮早晨为你收集整理的Apache 2.4 将域名指向www及默认跳转https的方法的全部内容,希望文章能够帮你解决Apache 2.4 将域名指向www及默认跳转https的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部