曼波中国
曼波社区
曼波知识库
曼波搜索

查看完整版本: [原创]最简单的让Mambo全站实现.html的方法

hoping 2005-8-12 03:00

[原创]最简单的让Mambo全站实现.html的方法

打开mambo/includes/sef.php
搜索
[code]return $mosConfig_live_site."/".$string;[/code]
在这一行的上面添加如下代码:
[code]$string=substr($string,0,-1);
$string.=".html";[/code]
这样修改以后,你的Mambo就可以支持.html了。
缺点就是必须要主机支持mod_rewrite

想要在非linux或者不支持mod_rewrite的主机上实现这些功能,请看我很早以前发的一篇贴子,链接:http://bbs.mambochina.net/viewthread.php?tid=1568

hoping 2005-8-12 03:04

忘了说了,还要修改一处,否则Mambo的pathway就无法正常显示了。
因为我们加了个.html,所以在Mambo开始转换URL的时候,就要把这个.html取掉。
搜索
[code]if ($mosConfig_sef) {[/code]
在下面加上一行
[code]$_SERVER['REQUEST_URI']=str_replace(".html","",$_SERVER['REQUEST_URI']);[/code]

hoping 2005-8-12 03:24

我在windows下也试了试SEF,没发现什么问题
环境是这样的:
Mambo+oscommerce+zoom+simpleboard+docman+akocomment
WinXP SP2,Apache 2.xx,PHP 4.3.10,Mysql
下面有张图

wells 2005-8-12 08:04

好贴,我试了一下,搞定,谢谢!

xiaomo 2005-8-12 08:42

我照hoping的方法做了,我的不能显示.html扩展名呀?
[quote]http://localhost/hotoe/index.php/content/view/17/2/[/quote]
----------------------------
我的配置
Mambo
Win2000 SP4
Apache 2.xx
PHP 4.4.0
Mysql
----------------------[/quote]

genous 2005-8-12 09:13

收录置頂贴...

zijie 2005-8-12 13:10

只是url后面多了.html,不是生成的静态页面啊?

hoping 2005-8-12 14:28

这当然不是生成静态网页了
这个只不过使用了Mambo的SEF功能。
大家可以看看下面两个地址:
主机支持mod_rewrite功能的演示地址:
http://lqjy.com.ru
主机不支持mod_rewrite功能的演示地址:
http://dian.9819.com

使用SEF可以提高搜索引擎的收藏量,不过现在的搜索引擎已经对带有?的网址不是那么的排斥了

而真正生成.html静态网页则有助于提高网站的访问、浏览速度

hoping 2005-8-12 14:29

[quote]原帖由 [i]xiaomo[/i] 发表
我照hoping的方法做了,我的不能显示.html扩展名呀?
[quote]http://localhost/hotoe/index.php/content/view/17/2/[/quote]
----------------------------
我的配置
Mambo
Win2000 SP4
Apache 2.xx
PHP 4.4.0
Mysql
----------------------[/quote][/quote]

麻烦仔细看看上面的贴子,有一处要改sef.php的

xiaomo 2005-8-12 16:12

[quote]打开mambo/includes/sef.php
搜索
代码:
return $mosConfig_live_site."/".$string;  

在这一行的上面添加如下代码:
代码:
$string=substr($string,0,-1);
$string.=".html";  

这样修改以后,你的Mambo就可以支持.html了。
缺点就是必须要主机支持mod_rewrite

想要在非linux或者不支持mod_rewrite的主机上实现这些功能,请看我很早以前发的一篇贴子,链接:http://bbs.mambochina.net/viewthread.php?tid=1568[/quote]

[quote]代码:
if ($mosConfig_sef) {  

在下面加上一行
代码:
$_SERVER['REQUEST_URI']=str_replace(".html","",$_SERVER['REQUEST_URI']);  [/quote]
我是按照楼主这两个帖来做的,sef.php我设置过了!但是没达到你说的那种效果!

hoping 2005-8-12 16:41

[quote]原帖由 [i]xiaomo[/i] 发表
我是按照楼主这两个帖来做的,sef.php我设置过了!但是没达到你说的那种效果![/quote]

把你改过的地方贴出来我看看,多带几行原文件

xiaomo 2005-8-12 17:00

[quote]原帖由 [i]hoping[/i] 发表
把你改过的地方贴出来我看看,多带几行原文件[/quote]

-------------------------------------------------
if ($mosConfig_sef) {
[b]  [color=red]$_SERVER['REQUEST_URI']=str_replace(".html","",$_SERVER['REQUEST_URI']);[/color][/b]
  $url_array = explode("/", $_SERVER['REQUEST_URI']);
[color=green0]  /**
   * Content[/color]
============================================================
else if (eregi("option=com_",$string) && !eregi("option=com_registration",$string) && !eregi("task=new",$string) && !eregi("task=edit",$string)) {
                [color=green0]        /*
                        Components
                        index.php?option=com_xxxx&...
                        */[/color]
                        $sefstring = "component/";
                        $temp = split("\?", $string);
                        $temp = split("&", $temp[1]);
                        foreach($temp as $key => $value) {
                                $sefstring .= $value."/";
                        }
                        $string = str_replace( '=', ',', $sefstring );
                }
                [color=green]//echo $mosConfig_live_site."/".$string;[/color]
                [b][color=red]return $mosConfig_live_site."/index.php/".$string;
            $string=substr($string,0,-1);
        $string.=".html";[/color][/b]
        } else {
                return $string;
        }

}
?>-------------------------------------------

[b]加粗加红的的地方是按照楼主的方法改的,
并在后台的全局设置里----搜索引擎友好链接:选择“是”先项![/b]

hoping 2005-8-12 17:06

晕啊
你加到return后面起什么作用啊?
你仔细的看看我上面的贴子里是怎么写的

xiaomo 2005-8-12 17:15

[quote]原帖由 [i]hoping[/i] 发表
晕啊
你加到return后面起什么作用啊?
你仔细的看看我上面的贴子里是怎么写的[/quote]
狂晕!!!!!!!!
原来是加在上面呀。。我习惯了找到一行代码就按回车加在下面,晕死。。。。终于搞定了!!!

不好意思,这个小问题也浪费hoping这么多时间。。
很感谢你!
[color=red]建议站长奖波币给hoping!!![/color]

hoping 2005-8-12 17:17

其实我已经想到你有可能是加到return下面了,就是不能确定,所以让你贴出原文件中的内容。
以后记住 一点哦,return就是程序执行到这儿就停了,并且返回一个信息。哈哈

xiaomo 2005-8-12 17:21

[quote]原帖由 [i]hoping[/i] 发表
其实我已经想到你有可能是加到return下面了,就是不能确定,所以让你贴出原文件中的内容。
以后记住 一点哦,return就是程序执行到这儿就停了,并且返回一个信息。哈哈[/quote]

虽然我不懂php语言,我用过actionscript语言也知道return执行到这儿就停了,并且返回一个信息!!!!因为不懂php,所以没有用心看过那代码,呵呵。。多谢指点,看来我的php得学一学了!

hoping 2005-8-12 17:26

SEF,只不过是修改了一下PHP的传递参数,从而使得网址链接看起来是变成了静态的。
至于说要让搜索引擎更好、更多的收录你的网站,SEF可以起一点作用,但是,更重要的还要在于你的网站的内容、网站的定位以及其它许多因素,希望大家不要对此抱有太多的期望了。
我之所以做这个修改,一方面是因为接触的用户有些是windows型主机,并不支持原来的SEF,所以做了一点修改。另一方面是为了与自己的HTML外挂配合。

xiaomo 2005-8-12 17:38

hoping网站的网址是什么了?我一下子找不到了!

hoping 2005-8-12 17:44

我签名底下不是有么?
http://www.mambofan.info

xiaomo 2005-8-12 17:51

我看不到你签名底下有呀??

不过没关系了。呵`

icanmanit 2005-8-13 18:47

有什么用吗?不太明白。

hoping 2005-8-13 21:24

从网站上看,Apache从2.x开始已经自带支持mod_rewrite了。

leo1 2005-8-18 23:19

[quote]原帖由 [i]hoping[/i] 发表

我之所以做这个修改,一方面是因为接触的用户有些是windows型主机,并不支持原来的SEF,所以做了一点修改。另一方面是为了与自己的HTML外挂配合。[/quote]

真诚求教hoping大哥:
我有半年没来了,当初用的451a,那时还没有SEF,
所以想问你说的“原来的SEF”指的哪个版本?
另外看你这句话的意思好像是做的这些修改是为windows型主机用的,
难道linux主机就不需修改了?

(其实今年正月我还给你打过电话呢,估计你想不起来了,当时就是请教你转静态的问题,当时你的回答是还没搞出来呢)

最后一个问题:你说SEF只是对搜索引擎起一点作用,可我怎么感觉他跟动态网页有天壤之别啊?被搜索引擎收录的差别好像很大吧?


最最后,祝大哥全家安好!幸福!

hoping 2005-8-20 01:44

[quote]原帖由 [i]leo1[/i] 发表
[quote]原帖由 [i]hoping[/i] 发表

我之所以做这个修改,一方面是因为接触的用户有些是windows型主机,并不支持原来的SEF,所以做了一点修改。另一方面是为了与自己的HTML外挂配合。[/quote]

真诚求教hoping大哥:
我有半年没来了,当初用的451a,那时还没有SEF,
所以想问你说的“原来的SEF”指的哪个版本?
另外看你这句话的意思好像是做的这些修改是为windows型主机用的,
难道linux主机就不需修改了?

(其实今年正月我还给你打过电话呢,估计你想不起来了,当时就是请教你转静态的问题,当时你的回答是还没搞出来呢)

最后一个问题:你说SEF只是对搜索引擎起一点作用,可我怎么感觉他跟动态网页有天壤之别啊?被搜索引擎收录的差别好像很大吧?


最最后,祝大哥全家安好!幸福![/quote]
呵呵,有印像的。
这里所说的SEF,在451下已经就存在了的,不过当时很少有人对其感兴趣而忆。
这里提出来的只是一个简单的用来欺骗搜索引擎(兼欺骗观众眼球)的一种做法。
不过,要使用SEO(你可以在网上搜索一下与SEO相关的资料),在UNIX环境下是最好的了,我所提出的仅仅是一个变通的用法而已

leo1 2005-8-22 00:01

谢了,继续发问:

你写的这个组件(http://bbs.mambochina.net/viewthread.php?tid=4663&highlight=%BE%B2%CC%AC)是简单的加个后缀名还是基于SEO理论?

再问个比较白的问题,mambo里的SEF在哪儿,找半天没找到

lang3 2005-8-22 00:15

到精华区看看 SEF 的帖子。

hoping 2005-8-22 11:53

[quote]原帖由 [i]leo1[/i] 发表
谢了,继续发问:

你写的这个组件(http://bbs.mambochina.net/viewthread.php?tid=4663&highlight=%BE%B2%CC%AC)是简单的加个后缀名还是基于SEO理论?

再问个比较白的问题,mambo里的SEF在哪儿,找半天没找到[/quote]
我这个既不是简单的加个后缀名,也不是基于SEO理论。
只是生成了HTML页面。Mambo已经支持SEO了,我就没有必要在SEO上大做文章了 :D
最新版的介绍请参看:http://jycms.com.ru

leo1 2005-8-22 14:00

半年没去你网站发现都改版了www.mambofan.info
你这个组件看了看的确很不错

精华区我也仔细看了SEF的帖子,是不是可以理解成:
SEF功能是去掉了地址后缀“.php”?而没有加上.html?

我知道你不是简单的加了个后缀,是建了个文件夹“html”,把所有转化成静态的文件都放在这个文件夹里了,这样形成了真正的静态网站(不过地址里多了层/html/好像不好看,当然这要比只是在地址后面简单加个后缀那种假静态要彻底的多),如果后台不开“搜索引擎优化”而直接用你这个组件会如何?

我看mambochina主站上的文章地址都有后缀.html,但是没有你“/html/”这层文件夹,这是如何实现?仅是通过后台的SEF即可实现?

18260 2005-9-9 21:36

楼主在否?不知IIS可以么?

我是艾浪 2005-9-11 17:38

我是虚拟主机,看来这个办法对我没用

findb 2005-9-16 08:31

在主页用户登陆时,出现了www.域名.com/.htm,然后就打不开页面了,请问这个问题怎么解决呀,我的主页左上角导航的首页也有这个问题,就是www.域名.com/.htm,然后就打不开了,请问如何解决呀?

我是艾浪 2005-9-19 15:13

我试了,不行啊

wang427 2005-10-13 18:02

我试了是可以的,可主页还是没有修改啊?

94bt 2005-10-16 16:04

打开mambo/includes/sef.php
搜索
代码:
return $mosConfig_live_site."/".$string;

在这一行的 上面 添加如下代码:
代码:
$string=substr($string,0,-1);
$string.=".html";

搜索
代码:
if ($mosConfig_sef) {

在 下面 加上一行
代码:
$_SERVER['REQUEST_URI']=str_replace(".html","",$_SERVER['REQUEST_URI']);

要修改两个地方

ygtqing 2005-10-19 14:01

没提速的话,就没这个必要

zhoujiekai 2005-10-19 14:25

我按照这方法做怎么没用啊,我安装曼虎的。

zhoujiekai 2005-10-19 14:26

我按照这方法做怎么没用啊,我安装曼虎的。

liyifeng 2005-10-23 20:53

哈哈~不仔细

jianquan 2005-11-5 18:17

先学习 等待传送啊  我已经安装这个好些次拉

franky 2005-11-8 13:50

安装以后出现
http://127.0.0.1/mambo/content/view/1/2.html
然后提示 HTTP 404 - 未找到文件
请问是什么原因?
是没装mod-rewrite吗?
页: [1] 2
查看完整版本: [原创]最简单的让Mambo全站实现.html的方法