1. 背景
今天收到了云服务商的邮件,说是根据历史的备案信息网站无法访问,突然想起在此之前配置 apache 时,默认的访问路径是不完整的,需要添加后缀才能访问到站点。同时,由于配置 SSL 证书后没有进行重定向,导致 http 访问时会被定向到 php 的测试界面。
2. 修改
2.1 更新默认站点的访问目录
(1)Ubuntu 下配置文件的访问路径为:
/etc/apache2/sites-available/
(2)通过文本编辑器修改配置文件:
vim 000-default.conf
(3)将 DocumentRoot 路径修改为站点的实际路径:
# DocumentRoot /var/www/html 默认是这个
DocumentRoot /var/www/YourAddress
2.2 将 http 重定向到 https
(1) 在 000-default.conf
文件下,新建或修改<VirtualHost *:80></VirtualHost *:80>
下的内容:
ServerName www.xxxx.com
ServerAlias xxxx.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
其中,RewriteEngine
代表开启 rewrite 功能,RewriteCond
代表当不是 https 时遵循下面的规则,
^(.*) https://%{SERVER_NAME}$1 [L,R]
中的 ^
代表匹配行的开始,$1
引用RewriteRule
中的第一个正则(.*)
代表的字符, %{SERVER_NAME}
就是监听的网站域名,[L]
表示结尾标识,停止重写操作。R
代表强制外部重定向。
全部修改完成后,保存该配置文件。
2.3 开启重定向模块
sudo a2enmod rewrite
2.4 重启 apache2 服务
sudo systemctl restart apache2
或者
/etc/init.d/apache2 restart