Apache 的 301 重定向配置

本贴最后更新于 1620 天前,其中的信息可能已经东海扬尘

1.前言

需要做 test.com 域名的访问重定向到 www.test.com域 名上,需要使用的到 Apache 301 重定向。

2.环境

操作系统:ubuntu 20.04 LTS
Apache2 版本:2.4.41

apache2 先开启重定向和 ssl 功能

a2enmod rewrite
a2enmod ssl
systemctl restart apache2

3.修改配置

注意:切勿使用服务别名和 301 重定向的域名出现冲突的情况,否则实现不了重定向,亲测过。

修改 80 端口的配置文件:/etc/apache2/sites-enabled/000-default.conf,内容如下:

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html
	ServerName www.test.com

        RewriteEngine on
        RewriteCond   %{HTTPS} !=on
        RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R=301]
        
        RewriteCond   %{HTTP_HOST} !^www\. [NC]
	RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

修改 443 端口的配置文件:/etc/apache2/sites-enabled/default-ssl.conf,内容如下:

                ServerAdmin webmaster@genscript.com

                DocumentRoot /var/www/html
                ServerName www.test.com

                RewriteEngine on
                RewriteCond   %{HTTP_HOST} !^www\. [NC]
                RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

如果是 www 跳转不带 www 的域名,则写法如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ %{REQUEST_SCHEME}://%1%{REQUEST_URI} [R=301,L]

4.刷新配置生效

systemctl reload apache2

5.参考

注意:网上很多教程说在网站根目录新建一个 .htaccess 文件,经测试,此种办法已经失效

  • Apache
    27 引用 • 35 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    126 引用 • 169 回帖
3 操作
Leif160519 在 2020-07-15 10:58:07 更新了该帖
Leif160519 在 2020-07-15 10:57:36 更新了该帖
Leif160519 在 2020-07-15 10:53:18 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...