dede如何去掉index?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 DEDE建站 正文

网站首页是动态页面,去掉 index.php

如果你的网站首页地址是 https://www.yourdomain.com/index.php,你想让它变成 https://www.yourdomain.com

dede如何去掉index
(图片来源网络,侵删)

核心原理

服务器接收到对根目录 的请求后,自动将其重写或内部转发到 index.php 文件。

操作步骤

修改 DedeCMS 后台设置(可选但推荐) 登录你的 DedeCMS 后台,进入【系统】->【系统基本参数】->【核心设置】。 找到 “首页文件名” 这一项,将其默认的 index.php 修改为 index.php(保持不变即可,重点是下面的服务器配置),这一步主要是为了确保后台生成规则时的一致性。

配置服务器进行 URL 重写

这是最关键的一步,你需要根据你的服务器类型来配置。

dede如何去掉index
(图片来源网络,侵删)

A. Apache 服务器

  1. 开启 Rewrite 模块 确保你的 Apache 服务器已经开启了 mod_rewrite 模块,如果没开,需要修改 httpd.conf 文件,去掉下面这行前面的 :

    LoadModule rewrite_module modules/mod_rewrite.so
  2. 创建并配置 .htaccess 文件 在你的网站根目录(即 index.php 所在的目录)下,创建一个名为 .htaccess 的文件,如果已存在,则编辑它。

    将以下代码完整地复制到 .htaccess 文件中:

    <IfModule mod_rewrite.c>
      Options +FollowSymlinks
      RewriteEngine On
      # 将根目录的请求重写到 index.php
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>

    代码解释:

    dede如何去掉index
    (图片来源网络,侵删)
    • Options +FollowSymlinks:允许跟随符号链接。
    • RewriteEngine On:开启重写引擎。
    • RewriteCond %{REQUEST_FILENAME} !-f:如果请求的不是一个文件,则执行下面的规则。
    • RewriteCond %{REQUEST_FILENAME} !-d:如果请求的不是一个目录,则执行下面的规则。
    • RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]:将所有请求都重写到 index.php,并保留原始的参数。
  3. 设置目录权限 确保 .htaccess 文件所在目录的配置文件(如 httpd.conf 中的 <Directory> 指令)允许覆盖 AllowOverride All

B. Nginx 服务器

  1. 修改 Nginx 配置文件 找到你的网站配置文件,通常位于 /etc/nginx/sites-available/ 目录下(如 yourdomain.com)。

  2. 添加或修改 locationserver 块中,确保有如下配置,特别是 try_files 这一行:

    server {
        listen 80;
        server_name www.yourdomain.com yourdomain.com;
        root /path/to/your/website; # 替换成你的网站根目录
        # ... 其他配置 ...
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据你的PHP版本修改
        }
        # ... 其他配置 ...
    }

    代码解释:

    • try_files $uri $uri/ /index.php?$query_string;:这是核心指令,它会依次尝试:
      1. 访问用户请求的 URI(如 /about)。
      2. 如果是目录,访问目录下的默认文件(如 /about/)。
      3. 如果以上都找不到,最后将请求交给 index.php 处理,并传递所有查询参数。
  3. 重启 Nginx 服务 保存配置文件后,执行以下命令使配置生效:

    sudo nginx -t
    sudo systemctl restart nginx

网站首页是静态HTML,去掉 index.html

如果你的网站开启了“生成HTML”,首页地址是 https://www.yourdomain.com/index.html,你想让它变成 https://www.yourdomain.com

这种情况更简单,因为不需要复杂的重写规则,只需要一个简单的重定向(Redirect)即可。

操作步骤

修改 DedeCMS 后台设置(可选) 同样可以进入【系统】->【系统基本参数】->【核心设置】,将“首页文件名”改为 index.html,但这不是必须的,因为最终效果是访问不到它的。

配置服务器进行 301 重定向

这是最标准、最推荐的做法,告诉搜索引擎 index.html 页面已永久移动到根目录,有利于 SEO 权重传递。

A. Apache 服务器

在网站根目录的 .htaccess 文件中添加以下规则:

# 将 index.html 301重定向到根目录
Redirect 301 /index.html https://www.yourdomain.com/

或者,如果你想重定向所有以 index.html 结尾的页面(包括子目录):

# 将所有 index.html 301重定向到对应的目录根
RedirectMatch 301 ^(.*/)index\.html$ https://www.yourdomain.com$1

B. Nginx 服务器

在网站配置文件的 server 块中添加以下 return 指令:

server {
    # ... 其他配置 ...
    # 将 index.html 301重定向到根目录
    location = /index.html {
        return 301 https://www.yourdomain.com/;
    }
    # ... 其他配置 ...
}

或者,如果你想重定向所有以 index.html 结尾的页面:

server {
    # ... 其他配置 ...
    # 将所有 index.html 301重定向到对应的目录根
    if ($request_filename ~* ^.*/index\.html$) {
        return 301 https://www.yourdomain.com$request_uri;
    }
    # ... 其他配置 ...
}

总结与注意事项

  1. 区分场景:首先确定你的首页是动态(index.php)还是静态(index.html),选择对应的方法。
  2. 首选方案
    • 去掉 index.php:使用 URL 重写,目的是让服务器“静默”地处理请求,用户浏览器地址栏不会变。
    • 去掉 index.html:使用 301 重定向,目的是明确告诉搜索引擎页面已永久移动。
  3. 清除缓存:配置完成后,请务必清除浏览器缓存、CDN 缓存(如果使用了)以及 DedeCMS 的模板缓存,以确保能看到效果。
  4. 检查权限:确保你创建或修改的配置文件(如 .htaccess)有正确的读写权限。
  5. 测试:配置完成后,访问你的域名,看看是否能正常跳转或显示内容,如果出现 500 错误,通常是配置文件语法有问题,请检查日志并修正。

按照以上步骤操作,你应该就能成功去掉 DedeCMS 首页的 index 了。

-- 展开阅读全文 --
头像
fgets和puts如何正确使用?
« 上一篇 02-21
织梦安装目录到底藏在哪里?
下一篇 » 02-21
取消
微信二维码
支付宝二维码

目录[+]