如何将非www域名重定向到www?buhehe.de的.htaccess配置咨询
没问题,这两个问题我来帮你一一解答:
主机填写的域名是不是问题根源?能不能用.htaccess解决?
完全不用担心,你购买主机时填写的是buhehe.de而非www.buhehe.de不是问题根源,而且这个需求完全可以通过.htaccess来解决,不需要修改主机的核心配置(前提是你的主机是Apache服务器,因为.htaccess是Apache专属的配置文件,Nginx不支持)。
www.buhehe.de本质上是buhehe.de的子域名,只要你的DNS解析已经把www.buhehe.de指向了同一个主机(大部分主机商会默认帮你配置好,或者你可以自己在DNS后台添加一条A记录/CNAME记录指向主机IP),就可以通过.htaccess实现强制跳转。
如何用.htaccess配置统一跳转到www.buhehe.de?
你需要在网站根目录下创建或修改.htaccess文件(如果没有这个文件,直接新建一个,注意文件名前面有个点;Windows系统里创建时可以用记事本,保存时文件名填.htaccess,保存类型选「所有文件」),然后添加以下规则:
情况1:网站使用HTTP(不推荐,现在大多是HTTPS)
RewriteEngine On # 判断当前访问的域名是buhehe.de(不区分大小写) RewriteCond %{HTTP_HOST} ^buhehe\.de$ [NC] # 将所有请求永久重定向到www.buhehe.de,保留原路径 RewriteRule ^(.*)$ http://www.buhehe.de/$1 [R=301,L]
情况2:网站使用HTTPS(推荐)
如果你的网站已经启用了HTTPS,建议用这个版本,避免跳转时出现HTTP和HTTPS混合的问题:
RewriteEngine On RewriteCond %{HTTP_HOST} ^buhehe\.de$ [NC] RewriteRule ^(.*)$ https://www.buhehe.de/$1 [R=301,L]
规则说明:
RewriteEngine On:开启Apache的URL重写模块,必须放在所有重写规则的最前面RewriteCond %{HTTP_HOST} ^buhehe\.de$ [NC]:匹配所有访问buhehe.de的请求,[NC]表示不区分大小写(比如BuHeHe.de也会被匹配)RewriteRule ^(.*)$ https://www.buhehe.de/$1 [R=301,L]:把匹配到的请求永久重定向到www.buhehe.de,$1会保留原请求的路径(比如访问buhehe.de/about会跳转到www.buhehe.de/about);[R=301]是永久重定向,对SEO友好,搜索引擎会更新索引;[L]表示这是最后一条规则,执行完就停止后续规则。
额外注意事项
- 测试时可以先用
R=302临时重定向,确认跳转正常后再改回R=301永久重定向,避免浏览器缓存错误的跳转规则 - 修改
.htaccess后,记得清空浏览器缓存再测试,否则可能看不到效果 - 如果你的主机是Nginx服务器,
.htaccess是无效的,需要在Nginx配置文件里添加重写规则(不过你问的是.htaccess,应该是Apache环境)
内容的提问来源于stack exchange,提问作者ნიკა ხაჩიძე
相关产品推荐
相关产品推荐

