织梦URL301如何正确设置?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 织梦建站 正文

织梦CMS的301重定向主要分为两种情况:

织梦 url 301
(图片来源网络,侵删)
  1. 域名变更:将 old.com 的所有流量永久重定向到 new.com
  2. 目录/路径变更:将 old.com/category/ 重定向到 new.com/new-category/

我们将分别介绍这两种情况下的实现方法。


使用 .htaccess 文件(推荐,适用于Apache服务器)

这是最常用、最标准且最有效的方法。.htaccess 是一个隐藏文件,位于你网站的根目录下。

情况1:整个域名重定向(推荐)

将旧域名 old.com 的所有流量(包括所有子目录和文件)301重定向到新域名 new.com

操作步骤:

织梦 url 301
(图片来源网络,侵删)
  1. 登录你的网站根目录:通过FTP或主机控制面板的文件管理器,进入网站的根目录(通常是 public_htmlwww)。

  2. 找到或创建 .htaccess 文件

    • 如果已经存在 .htaccess 文件,请用文本编辑器(如Notepad++, VS Code)打开它。
    • 如果不存在,请创建一个新文件,命名为 .htaccess(注意前面有一个点)。
  3. 添加以下代码到文件的开头

    # 将 old.com 重定向到 new.com
    # 请将 old.com 和 new.com 替换为你的实际域名
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^old.com [NC]
    RewriteRule ^(.*)$ http://new.com/$1 [L,R=301]
  4. 代码解释

    织梦 url 301
    (图片来源网络,侵删)
    • RewriteEngine on:开启Apache的URL重写引擎。
    • RewriteCond %{HTTP_HOST} ^old.com [NC]:这是一个条件,它检查访问的域名(%{HTTP_HOST})是否是 old.com^表示开头,[NC]表示不区分大小写)。
    • RewriteRule ^(.*)$ http://new.com/$1 [L,R=301]:如果满足上面的条件,则执行重定向规则。
      • ^(.*)$:匹配从根目录开始的任意URL路径。
      • http://new.com/$1:将其重定向到 new.com 的相同路径($1 是一个反向引用,代表前面 RewriteRule 中 匹配到的内容)。
      • [L]:Last Rule,表示如果此规则匹配,则停止处理后续的Rewrite规则。
      • [R=301]:执行一个301(永久移动)重定向。
  5. 保存并上传:保存文件,并确保通过FTP上传回服务器,覆盖原有的 .htaccess 文件。

更完善的写法(带www):

如果你希望强制所有访问都带 www,或者处理 www 和非 www 的统一重定向,可以使用更完善的代码。

# 强制将 old.com 和 www.old.com 统一重定向到 new.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^old.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com [NC]
RewriteRule ^(.*)$ http://new.com/$1 [L,R=301]

情况2:特定目录或页面重定向

如果你想将旧站点的某个特定目录或页面重定向到新站点,规则可以更精确。

示例1:将旧目录重定向到新目录

# 将 old.com/blog/ 下的所有请求重定向到 new.com/articles/
RewriteEngine on
RewriteRule ^blog/(.*)$ http://new.com/articles/$1 [L,R=301]

访问 http://old.com/blog/post1.html 会重定向到 http://new.com/articles/post1.html

示例2:将单个页面重定向

# 将 old.com/old-page.html 重定向到 new.com/new-page.html
RewriteEngine on
RewriteRule ^old-page\.html$ http://new.com/new-page.html [L,R=301]

修改PHP文件(适用于所有服务器,但优先级较低)

如果你的服务器不支持 .htaccess 文件(例如某些Nginx环境配置不当),或者你想直接在代码中控制,可以修改织梦的入口文件 index.php

操作步骤:

  1. 登录网站根目录,找到 index.php 文件。

  2. 用文本编辑器打开 index.php

  3. 在文件最顶部,<?php 这行代码之后,添加以下PHP代码

    <?php
    // 301重定向示例:将域名从 old.com 重定向到 new.com
    // 请将 old.com 和 new.com 替换为你的实际域名
    if ($_SERVER['HTTP_HOST'] == 'old.com') {
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: http://new.com".$_SERVER['REQUEST_URI']);
        exit();
    }
    // ... 后面是 index.php 原有的代码 ...
    require_once (dirname(__FILE__) . "/include/common.inc.php");
    require_once DEDEINC."/arc.partview.class.php";
  4. 代码解释

    • if ($_SERVER['HTTP_HOST'] == 'old.com'):检查当前访问的域名是否是 old.com
    • header("HTTP/1.1 301 Moved Permanently");:发送HTTP 301状态码。
    • header("Location: http://new.com".$_SERVER['REQUEST_URI']);:跳转到新域名,并保持原来的请求路径($_SERVER['REQUEST_URI'])。
    • exit();:执行重定向后,立即终止脚本执行,防止后续代码运行。
  5. 保存文件

注意

  • 这种方法不如 .htaccess 优雅,因为修改了核心文件。
  • 织梦系统升级时,这个修改可能会被覆盖,需要重新修改。
  • 如果服务器同时支持 .htaccess 和PHP重定向,.htaccess 的规则通常优先级更高。

针对织梦后台生成的URL进行301重定向(高级场景)

有时,你不想重定向整个域名,而是想将织梦默认生成的URL(如 /a/ 目录下的文章、栏目页)重定向到更友好的自定义URL(如 /article/ 或伪静态后的URL),这种情况比较复杂,通常需要结合织梦的模板修改和 .htaccess 规则来实现。

一个常见的例子:将 /a/ 目录重定向到 /article/

  1. 确保你在织梦后台已经开启了“伪静态”功能,并配置好了对应的规则。

  2. .htaccess 文件中添加规则,将旧的 /a/ 路径重定向到新的路径。

    # 将旧的文章目录 /a/ 重定向到新的目录 /article/
    # 注意:这只是一个示例,你的新URL结构可能不同
    RewriteRule ^a/(.*)$ http://yourdomain.com/article/$1 [L,R=301]
  3. 或者,更推荐的方法是修改织梦的模板,让它在生成新链接时就使用新的URL结构,而不是先生成旧的URL再重定向,这需要修改织梦的源码或使用自定义标签,难度较大。


重要提醒与验证

  1. 备份:在修改任何网站文件(特别是 .htaccessindex.php)之前,务必备份原始文件!以防修改出错导致网站无法访问。

  2. 清除缓存:修改后,清除浏览器缓存和CDN缓存(如果使用了CDN服务),以确保你能看到最新的重定向效果。

  3. 验证

    • 浏览器测试:在浏览器中访问你的旧URL,查看地址栏是否变成了新的URL,且状态码是否为 301(可以通过浏览器插件如 "Redirect Path" 或 "Check My Redirects" 查看)。
    • 命令行测试:使用 curl 命令可以更精确地查看HTTP状态码。
      curl -I http://old.com

      如果看到 HTTP/1.1 301 Moved PermanentlyLocation: http://new.com/,则说明配置成功。

  4. SEO影响:301重定向传递权重需要时间,通常搜索引擎需要几周到几个月来完全传递,请耐心等待,并确保重定向是永久性的,不要随意更改重定向目标。

首选 .htaccess 方法,因为它更标准、更灵活,且不涉及修改核心PHP文件,对系统升级也更友好。

-- 展开阅读全文 --
头像
dede手机站静态化如何设置?
« 上一篇 前天
织梦banner标签
下一篇 » 前天

相关文章

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

目录[+]