文章目录
  1. 1. 准备
  2. 2. no-www to www
  3. 3. www to no-www
  4. 4. 参考资料
  5. 5. 文档信息

准备


检测 DNS 域名设置,将 devhitao.comblog.devhitao.com 都指向一个 IP 地址。

查看 /etc/httpd/conf/httpd.conf 文件中重写模块/组件 LoadModule rewrite_module modules/mod_rewrite.so 是否打开,若没有请自行安装;

编辑 httpd.conf 文件

1
$ vi /etc/httpd/conf/httpd.conf

若用 DocumentRoot 指向 /var/www/html/blog.devhitao.com,则应在 httpd.conf 中添写一些配置。(注:为了配置简单,建议使用下面方法)

1
2
3
4
5
<Directory "/var/www/html/blog.devhitao.com"> # 指定目录下
# ...
AllowOverride All
# ...
</Directory>

注:若嫌上面添加麻烦,直接可修改 httpd.conf 文件配置中

1
2
3
4
<Directory /> # 代表根目录
Options FollowSymLinks
AllowOverride None # 将 None 改为 All ,表示在根目录都允许重写
</Directory>

在 目录下编辑 .htaccess 文件

1
$ vi .htaccess

下面,选择你需要的功能,例如: no-www to www 或 www to no-www,这里我使用的 blog 代替 www。

no-www to www


将不带 www 的域名 301 到带 www 的域名。eg: devhitao.com -> blog.devhitao.com
切换到网站根目录 /var/www/html/blog.devhitao.com , 在此目录下编辑 .htaccess 文件,添加以下字符,退出保存(esc:wq);

1
2
3
4
Options +FollowSymLinks  
RewriteEngine on
RewriteCond %{HTTP_HOST} ^devhitao.com [NC]
RewriteRule ^(.*)$ https://blog.devhitao.com/$1 [L,R=301]

注:可将上面 https,可换成 http,具体看自己需求支持

重启 apache 服务器

1
$ service httpd restart

验证

1
$ curl -I http://devhitao.com

返回一下部分内容即为配置成功

1
2
3
4
5
HTTP/1.1 301 Moved Permanently     # 重点在这里
Date: Tue, 27 Mar 2018 12:45:22 GMT
...
Location: https://blog.devhitao.com/
...

www to no-www


参考上面部分操作,在 .htaccess 中添加以下配置

1
2
3
4
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

验证方式,请参考上面。

参考资料


文档信息


  • 版权声明:自由转载-保持署名-非商用-非衍生 ( CC BY-NC-ND 4.0 )
文章目录
  1. 1. 准备
  2. 2. no-www to www
  3. 3. www to no-www
  4. 4. 参考资料
  5. 5. 文档信息