织梦带www与不带www如何正确跳转?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 织梦建站 正文
  1. 修改网站根目录下的 index.php 文件:实现首页的重定向。
  2. 配置服务器伪静态规则:实现所有其他页面的重定向。

第一步:修改 index.php 文件(针对首页)

这是最关键的一步,确保用户访问 www.yourdomain.com 时,能被正确跳转到 yourdomain.com

织梦带www的专到不带www
(图片来源网络,侵删)
  1. 通过FTP或文件管理器,连接到你的网站服务器。
  2. 找到并下载网站根目录下的 index.php 文件。
  3. 用代码编辑器(如 Notepad++, VS Code, Sublime Text)打开该文件。
  4. 在文件的最顶部,在 <?php 这行代码的正下方,添加以下重定向代码:
// 强制将www域名跳转到不带www的域名
if (substr($_SERVER['HTTP_HOST'], 0, 4) == 'www.')
{
    $redirect_url = 'http://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['REQUEST_URI'];
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: ' . $redirect_url);
    exit();
}

代码解释:

  • substr($_SERVER['HTTP_HOST'], 0, 4) == 'www.':检查当前访问的域名是否以 www. 开头。
  • $redirect_url = 'http://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['REQUEST_URI'];:如果是以 www. 开头,就构建一个新的URL,它会去掉 www.,并保留用户请求的路径(如 /article/123.html)。
  • header('HTTP/1.1 301 Moved Permanently');:发送一个 301 永久重定向的HTTP头,这是告诉搜索引擎“这个页面已经永久移动到新位置了”。
  • header('Location: ' . $redirect_url);:跳转到新的URL。
  • exit();:执行完重定向后,立即终止脚本,防止后续代码继续执行。
  1. 保存文件,并上传回服务器,覆盖原文件。

第二步:配置服务器伪静态规则(针对所有页面)

只修改 index.php 只能处理首页的重定向,用户访问 www.yourdomain.com/news/ 这样的页面时,还需要服务器层面的重定向,这时就需要使用伪静态规则。

根据你的服务器环境,选择对应的规则进行配置。

A. Apache 服务器

织梦的伪静态规则文件通常是 /htaccess.txt.htaccess

织梦带www的专到不带www
(图片来源网络,侵删)
  1. 找到网站根目录下的 htaccess.txt 文件(如果没有,可以新建一个 .htaccess 文件)。
  2. 在文件的开头,添加以下规则:
# 强制将www域名跳转到不带www的域名
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]

代码解释:

  • RewriteEngine On:开启Apache的URL重写引擎。
  • RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com [NC]:设置一个条件,如果当前请求的域名是 www.yourdomain.com[NC] 表示不区分大小写),则执行下面的规则。
  • RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]:如果条件满足,将所有请求(^(.*)$ 匹配任意路径)重定向到 http://yourdomain.com/ 的对应路径,[L,R=301] 表示这是最后一次重定向(L),并且是301永久重定向。

重要提示: 请务必将 yourdomain.com 替换成你自己的域名。

  1. 将文件上传或保存为 .htaccess 到网站根目录。

B. Nginx 服务器

Nginx的伪静态规则通常在服务器的配置文件中,或者在织梦后台的“系统” -> “系统基本参数” -> “核心设置” -> “文件命名规则”里指定的文件(但更常见的是直接修改Nginx配置)。

  1. 找到你的网站配置文件(通常在 /etc/nginx/sites-available/ 目录下)。
  2. server 块中,添加以下 if 判断:
server {
    listen 80;
    server_name www.yourdomain.com; # 将你的www域名写在这里
    # 将www域名重定向到主域名
    if ($host = 'www.yourdomain.com') {
        return 301 http://yourdomain.com$request_uri;
    }
    # ... 其他配置 ...
    # 下面是织梦原有的伪静态规则
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=$1 last;
            break;
        }
    }
}

代码解释:

织梦带www的专到不带www
(图片来源网络,侵删)
  • if ($host = 'www.yourdomain.com'):如果主机名是 www.yourdomain.com
  • return 301 http://yourdomain.com$request_uri;:直接返回一个301重定向,跳转到不带 www 的域名,并保留原始请求路径 ($request_uri)。

重要提示:

  • 请务必将 yourdomain.com 替换成你自己的域名。
  • 你的主域名配置(server_name yourdomain.com;)也应该存在。
  • 修改完Nginx配置后,需要执行 nginx -s reload 命令来重新加载配置使其生效。

第三步:检查和确认

完成以上步骤后,你需要验证重定向是否生效。

  1. 使用浏览器访问

    • 在浏览器地址栏输入 www.yourdomain.com,观察地址栏是否立即变为 yourdomain.com,并且页面正常加载。
    • 再访问 www.yourdomain.com/some-page.html,看是否能正确跳转到 yourdomain.com/some-page.html
  2. 使用在线工具检查

    • 访问 301 Redirect Checker (https://www.redirect-checker.org/)。
    • 输入 www.yourdomain.com,工具会告诉你它是否被正确重定向到 yourdomain.com,以及重定向类型是否为 301
步骤 操作 作用 关键文件/位置
1 修改 index.php 确保 www.yourdomain.com 首页跳转到 yourdomain.com 网站根目录 /index.php
2 配置伪静态规则 确保所有 www 子页面都跳转到对应主域名页面 Apache: .htaccess
Nginx: 网站配置文件
3 检查验证 确认重定向设置正确无误 浏览器、在线工具

通过以上三步,你就成功地为织梦网站设置了从 www 到无 www 的永久重定向,这对于网站的SEO和规范化非常有帮助。

-- 展开阅读全文 --
头像
dede channel type是什么?
« 上一篇 2025-12-19
织梦如何调用当前文章的tag标签?
下一篇 » 2025-12-19

相关文章

取消
微信二维码
支付宝二维码

目录[+]