Apache的重定向 (redirect) 设置,从http到https等等
写着的事情 (xiě zhē de
由于在Apache上运行的网站进行了各种重定向的尝试,这是当时的备忘录。
例如,写有关将http重定向到https的设置,假定网站已经进行了SSL化。
主要是修改httpd.conf文件和ssl.conf文件。
为了将网站进行SSL化,需要安装SSL证书,而Let’s Encrypt是一个广泛使用且免费的正式SSL证书选择。
· 申请Let’s Encrypt的SSL证书并将网站进行SSL化【首次免费使用https】
· 更新Let’s Encrypt的SSL证书(手动和通过cron自动更新)
· 使用自签名根证书(自己生成的证书)进行SSL化,从http切换到https,使用apache服务器。
环境
EC2、Amazon Linux2(CentOS7)系列的Apache2.4
将HTTP重定向到HTTPS。
如果要将所有的http访问重定向到https,需要在httpd.conf文件中添加以下内容。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
2行目的RewriteCond表示的是非HTTPS访问的请求。
3行目的RewriteRule表示HTTP_HOST是服务器主机名(域名),REQUEST_URI是URL的域名下路径(以/开头)。
将HTTP重定向到HTTPS使用301(R=301)。
请提供以下内容的中文翻译:
将所有页面转换为SSL的方法(Apache)
【Apache】使用mod_rewrite和.htaccess进行重定向
重写(URL重写)
->介绍了RewriteEngine、RewriteCond、RewriteRule
(https://agohack.com/mod_rewrite_rule_cond_base/)
->这里也有关于mod_rewrite模块的RewriteEngine、RewriteCond、RewriteRule的介绍。
将从HTTP重定向到HTTPS,并从HTTPS的www主机重定向到没有主机的HTTPS。
当请求下表中的三个重定向源URL时,将重定向到重定向目标。
首先,您需要编辑httpd.conf文件,将所有的http访问重定向到https。
请在下方添加以下3行内容。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
接下来,您需要编辑ssl.conf文件,将https://www.ドメイン.com重定向到https://ドメイン.com。请将以下4行添加到标签内。
(如果需要302重定向,请把下面的301替换为302)
# ホストwwwからホスト無しへリダイレクト
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www.ドメイン.com$
RewriteRule ^(.*)$ https://ドメイン.com%{REQUEST_URI} [R=301,L]
将从http://www.域名.com直接重定向到https://域名.com。
即使在上述设置中,http://www.ドメイン.com也会重定向到https://ドメイン.com,但是这里进行了两次重定向,即http://www.ドメイン.com->https://www.ドメイン.com->https://ドメイン.com。
我认为这样也可以,但是我会尝试直接重定向设置。
第一个 VirtualHost 标签将除了 www.域名.com 之外的 http 访问重定向到 https,而第二个 VirtualHost 标签将 http://www.域名.com 重定向到 https://域名.com。
#ファイルの最後に追加
RewriteEngine on
<VirtualHost *:80>
ServerName any
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:80>
ServerName www.ドメイン.com
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://ドメイン.com%{REQUEST_URI} [R=301,L]
</VirtualHost>
其他参考网站
将http重定向到https,WWW的重定向方法(mod_rewrite)。
在WEB服务器(Apache)上禁止或重定向直接通过IP地址访问的方法。
将IP地址重定向到域名的方法是什么?
強制将http访问重定向到https(在虚拟主机环境下进行单独设置)
-> 第二个指令是拒绝使用未定义为虚拟主机名的访问(例如,IP地址等)。
拒绝Apache 2.4中的http和https通过IP地址或不同的FQDN进行访问。