wangjie 发表于 2025-9-21 06:41:17

discuzX去除后缀forum.php/portal.php-

去掉域名后面的/forum.php或portal.php的方法修改方法一:
打开根目录下的index.php
查找:

if(!empty($url)) {
    $delimiter = strrpos($url, '?') ? '&' : '?';
    if($_GET['fromuid']) {
      $url .= $delimiter.'fromuid='.$_GET['fromuid'];
    } elseif($_GET['fromuser']) {
      $url .= $delimiter.'fromuser='.$_GET['fromuser'];
    }
    header("HTTP/1.1 301 Moved Permanently");
    header("location: $url");
} else {
    require './'.$_ENV['curapp'].'.php';在前面加上:
$url = '';
$_ENV['curapp'] = 'portal';介绍:
如果想设置论坛为默认首页,把代码中的$_ENV['curapp'] = 'portal'; 替换为 $_ENV['curapp'] = 'forum';
如果想要空间为默认首页:替换为 $_ENV['curapp'] = 'home';
去掉域名后面的/forum.php或portal.php的方法二(推荐):
默认首页设置添加forum.php

比如linux主机,修改为如下代码:DirectoryIndex forum.php index.html index.php default.html

如果是虚拟空间,一般在服务器的空间面板都有谁知默认首页的功能,直接添加然后修改下优先级即可。

上面2种方法都可以去掉域名后面的/forum.php或portal.php尾椎,可实现SEO优化中的URL标准化

去掉面包屑导航中的forum.php或portal.php的方法
打开模版文件discuz.htm,查找以下代码
<div class="z">
      <a href="./" class="nvhm" title="{lang homepage}">$_G</a><em>&raquo;</em><a href="forum.php"{if $_G['setting']['forumjump']} id="fjump" onmouseover="delayShow(this, 'showForummenu($_G)');" class="showmenu"{/if}>{$_G}</a>$navigation
    </div>打开模版文件forumdisplay.htm,查找以下代码
<div class="z">
      <a href="/bbs/" class="nvhm" title="{lang homepage}">$_G</a><em>&raquo;</em><a href="/bbs/"{if $_G['setting']['forumjump']} id="fjump" onmouseover="delayShow(this, 'showForummenu($_G)');" class="showmenu" {/if}>{$_G}</a>$navigation
    </div>打开模版文件viewthread.htm,查找以下代码
<div class="z">
      <a href="./" class="nvhm" title="{lang homepage}">$_G</a><em>&raquo;</em><a href="forum.php"{if $_G['setting']['forumjump']} id="fjump" onmouseover="delayShow(this, 'showForummenu($_G)');" class="showmenu" {/if}>{$_G}</a>$navigation <em>&rsaquo;</em> <a href="forum.php?mod=viewthread&tid=$_G">$_G</a>
    </div>以上3个文件中查找的代码中把<a href=”forum.php”>替换成<a href=”./”>即可。

方法有很多,主要还要看大家通过什么方法来实现和完成,多尝试,也许你可以找到更完美的解决方法。

页: [1]
查看完整版本: discuzX去除后缀forum.php/portal.php-