需要做test.com
域名的访问重定向到www.test.com域
名上,需要使用的到Apache 301重定向。
操作系统:ubuntu 20.04 LTS
Apache2
版本:2.4.41
apache2先开启重定向和ssl功能
a2enmod rewrite
a2enmod ssl
systemctl restart apache2
注意:切勿使用服务别名和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]
systemctl reload apache2
注意:网上很多教程说在网站根目录新建一个
.htaccess
文件,经测试,此种办法已经失效
“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” – Tom Cargill
标 题:Apache的301重定向配置