Discuz!去除portal.php或forum.php尾巴将301变200返回码的完美解决方法

有人问我Discuz!程序为什么输入域名打开网站后域名后面会出现一个尾巴portal.php 或者 forum.php。
那么Discuz!为什么会出现这两个不同的尾巴呢?最好的解决方法是什么?
分析
这是因为Discuz!后台有应用启用功能,不同的设置index.php会执行不同的应用,比如你开启了论坛关闭了门户,那么输入网址会自动跳到forum.php,又比如论坛和门户都开启了你设置门户为首页那么就会跳转到portal.php。
其实这样的设计我个人觉得对搜索引擎来说是不合理的,使用识别后台设置跳转那么网站返回码就成301状态了,然而对搜索引擎是并不友好,我们需要设置成200才符合常理。
那么有什么办法可以解决Discuz!后面的尾巴呢?
其实网站有很多相关的教程 比如说在空间默认文档中将portal.php 和forun.php 添加进去 这样呢在访问的时候也不会出现尾巴,但是并没有彻底的解决

这里给大家讲两个更详细并能彻底解决的方法

一、修改空间的默认文档
 

设置方法:
1、将后台“界面>>导航>>主导航”中将默认门户取消可用,然后添加一个首页的菜单(链接那里直接输入/)。 

照上面这两步修改后就实现了直接访问域名时不跳转到portal.php了,但还得考虑到门户的其他页面中,在面包屑的位置那里仍然有portal.php存在,所以为了改得彻底些,再按照下面的步骤修改吧:
注意由于大家用的模板不同 修改模板的地址和文件名也不同一般位置就是(template/你用的模板名/portal/)
2、修改模板文件template/default/portal/目录下的list.htm、list_category_onerank.htm、list_category_tworanks.htm、view.htm,三个文件一样的方法: 
查找代码: 

  1. <a href="$_G[setting][navs][1][filename]">{lang

到就近的一个:
<em>›</em> 
将其删除或将链接地址改为你需要的。
顺便也将含有(有的就改,没有就不管):

  1. <a href="index.php"



这样的代码中的index.php也改为/,要不首页链接就存在文件名了哦。
好了,按照以上几步修改之后,就彻底去掉了门户页中的portal.php文件名了。

方法二

本帖隐藏的内容

二、修改index.php文件代码
查找代码:

  1. header("HTTP/1.1 301 Moved Permanently");
    header("location: $url");

 


改为:

  1. // header("HTTP/1.1 301 Moved Permanently");
    // header("location: $url");
    $parse = parse_url($url);
    if(!isset($parse['host']) && file_exists($parse['path'])) {
    if(!empty($parse['query'])) {
    parse_str($parse['query'], $_GET);
    }
    require './'.$parse['path'];
    } else {
    header("HTTP/1.1 301 Moved Permanently");
    header("location: $url");
    }

 




方法一与方法二就前面不一样,后面的index.php设置成/都是一样的,当然在修改模板内容的时候你也可以直接将‘/’改成 'http://www.你的域名.com'.

huan

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: