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时,将重定向到重定向目标。

リダイレクト元(転送元)リダイレクト先(転送後)http://www.ドメイン.com
http://ドメイン.com
https://www.ドメイン.comhttps://ドメイン.com

首先,您需要编辑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进行访问。

广告
将在 10 秒后关闭
bannerAds