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

查看完整版本: [教学]如何开始使用SEF

zijie 2005-4-9 01:08

[教学]如何开始使用SEF

首先,SEF意思是Search Engine Friendly,就是可以把
原来那一长串网址变成这样:
http://www.site.com/content/view/5/2/
看起来像静态内容~~比较符合各搜索引擎spider的胃口~~

有兴趣的朋友们可以参考mambo官方站那个超长的帖子:http://forum.mamboserver.com/showthread.php?t=79

下面开始:

[color=red]使用SEF方法1:用mambo自带的SEF[/color]

[color=orange]1) You must run Apache[/color]
服务器端要用Apache.
检查方法:
4.5.1*: 后台〉系统 〉 系统信息
4.5.2:  后台〉帮助 〉System Info(找了半天)
PHP系统环境和Web服务器的类型都在这里了。
SEF在IIS不能运行的,就别浪费时间试了。(IIS请看方法2)



[color=orange]2) You must have mod_rewrite enabled[/color]
php必须支持rewrite模块
检查方法:
4.5.1*: 后台〉系统 > 系统信息
4.5.2:  后台〉帮助 〉System Info
点PHP信息那个标签,往下拉,找到Loaded Modules这行(我是没找到,谁找到了告诉我一下).
如果你看到mod_rewrite那你就可以去冲一杯咖啡庆祝一下了~~
如果没找到?不代表一定不行,祈祷一下,继续下一步。


[color=orange]3) Your server must allow .htaccess override[/color]服务器必须允许对.htaccess文件的重载
检查方法:删除 .htaccess file里的所有内容,写上下面的代码:

[code]Redirect /google.html http://www.google.com[/code]

然后用浏览网页http://www.yoursite.com/google.html
如果转向了 google.com 那么就OK了~~
现在那杯咖啡应该刚好可以喝了~~什么?你已经喝完了?  ......


[color=orange]4) Set $mosConfig_sef= "1" in configuration.php[/color]
打开SEF。
打开方法:
4.5-109:全局配置 > 内容 > 搜索引擎友好链接 打开
4.5.1和4.5.2 :全局配置 > 搜索引擎优化 > 搜索引擎友好链接 打开


[color=orange]5) Rename htaccess.txt to .htaccess[/color]
将htaccess.txt重命名为.htaccess
windows下是做不了这件事的,上传以后用FTP软
件重命名!

好了,现在可以试试了。

[color=red]如果以上方法不成功,请看方法2,利用404page的原理
http://bbs.mambochina.net/viewthread.php?tid=4590[/color]

[[i] 本帖最后由 zijie 于 2006-8-16 00:17 编辑 [/i]]

zijie 2005-4-9 01:44

上面说的只在mambo主体内有效,如果要在附加的组件、模块、模版里使用SEF,就要用到一个叫sefRelToAbs()的函数,把链接全部转成SEF格式.

比如:
原有链接index.php?option=com_contact&Itemid=$Itemid
现在就要改成:
echo sefRelToAbs("index.php?option=com_contact&Itemid=$Itemid");


如果你想进一步增强SEF、简化地址,可以看看SEF advance:
http://www.sakic.net/index.php?opti...ore=sef_advance

zijie 2005-4-9 02:15

常见问题集中帖:
[color=red]提问前请先看完本贴![/color]
1.如果mambo主体使用了SEF,而某组件没有,会有问题吗?
  答:不会影响使用,只不过该组件的地址没有优化罢了

2.如果你的mambo不是安装在根目录下,可能要对.htaccess文件作些改动。

.htaccess文件里有这么一段话:

# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update YourMamboDirectory (just / for root)

# RewriteBase /YourMamboDirectory

意思是如果mambo不是安装在根目录里,就取消“# RewriteBase /YourMamboDirectory”这句话的注释,然后把“YourMamboDirectory”改成mambo安装的目录
If your Domain is (http://www.yourdomain.com/mambo)

[code]RewriteBase /mambo [/code]

or

If your Domain is (http://www.yourdomain.com/123/mambo)

[code]RewriteBase /123/mambo[/code]

If your Domain is (http://www.yourdomain.com)

[code]RewriteBase /[/code]


3.如果多方尝试还是不行,那么到后台把SEF关掉,然后把.htaccess重命名回来(可能这个文件变为不可见的了,那就用FTP命令强改吧~~呵呵~~)

blackfoxz 2005-4-9 05:20

Re: [教学]如何开始使用SEF

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


[code]Redirect /google.html http://www.google.com[/code]

[/quote]gg一定会K你,PR是上去了,可是被封的日子也不远了

zijie 2005-4-9 08:16

Re: [教学]如何开始使用SEF

[quote]原帖由 [i]blackfoxz[/i] 发表
[quote]原帖由 [i]zijie[/i] 发表


[code]Redirect /google.html http://www.google.com[/code]

[/quote]gg一定会K你,PR是上去了,可是被封的日子也不远了[/quote]

这个...恩...这只是一个“检查方法”,检查完请改回来!

btang 2005-4-30 21:12

谢谢楼主。

zijie 2005-5-1 17:16

哈哈~~写了这么久,还以为没人看呢
是不是大家用SEF都很顺利

genous 2005-5-11 11:54

我现在是满脑子的问号。。。

genous 2005-5-11 12:52

我对第三步有疑问

[quote]3) Your server must allow .htaccess override
服务器必须允许对.htaccess文件的重载
检查方法:删除 .htaccess file里的所有内容,写上下面的代码:

[code]Redirect /google.html http://www.google.com[/code] [/quote]


[u]假如这步不能实现的话。就说明了空间商的配置没有配合.[/u]


所以应该要求空间商 设置 apache 的 AllowOverride 属性/即可实现.


=======================================================

如果是本地的话就这样修改

这样////
[quote]<Directory /www/xxxx.net>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>  [/quote]

zijie 2005-5-12 00:35

1.如果不支持.htaccess override,是虚拟主机就没法用了,是自己的服务器的话很抱歉,我不知道怎么改,或许是像你说的一样。mambo主站的那个帖子里有,抱歉我现在没时间去翻那个超长的帖子,等我考完试可以去找找:P

2. .htaccess文件里有这么一段话:

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update YourMamboDirectory (just / for root)

# RewriteBase /YourMamboDirectory

意思是如果mambo不是安装在根目录里,就取消“# RewriteBase /YourMamboDirectory”这句话的注释,然后把“YourMamboDirectory”改成mambo安装的目录



另外hoping有另一种SEF的解决方案,我另发了一帖询问详细情况,可惜还没有恢复,高手也帮忙帮忙看看吧

hoping 2005-5-12 01:15

建议此篇文章置顶!超强推荐!

genous 2005-5-12 10:14

[quote]原帖由 [i]zijie[/i] 发表
1.如果不支持.htaccess override,是虚拟主机就没法用了,是自己的服务器的话很抱歉,我不知道怎么改,或许是像你说的一样。mambo主站的那个帖子里有,抱歉我现在没时间去翻那个超长的帖子,等我考完试可以去找找:P

2. .htaccess文件里有这么一段话:

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update YourMamboDirectory (just / for root)

# RewriteBase /YourMamboDirectory

意思是如果mambo不是安装在根目录里,就取消“# RewriteBase /YourMamboDirectory”这句话的注释,然后把“YourMamboDirectory”改成mambo安装的目录



另外hoping有另一种SEF的解决方案,我另发了一帖询问详细情况,可惜还没有恢复,高手也帮忙帮忙看看吧[/quote]

那個國外的那個帖子我都快繙完暸。。。他們至始至終都在研究的一個問題就是 “mod_rewrite” 問題 和“RewriteBase /YourMamboDirectory”的設置問題

[code].htaccess override[/code]
具體來說我不怎么明白這個是什么意思。。基本上國外的用戶好像在這一步上都沒有問題。。

[code]#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update YourMamboDirectory (just / for root)[/code]

#意思就是路徑相對于站點而言。
#非實際路徑
#設置妳的MAMBO目錄名稱(相對于根目錄而言)

If your Domain is (http://www.yourdomain.com/mambo)
[color=redf]
RewriteBase /mambo
  [/color]
or

If your Domain is (http://www.yourdomain.com/123/mambo)
[color=redf]
RewriteBase /123/mambo[/color]

If your Domain is (http://www.yourdomain.com)
[color=redf]
RewriteBase / [/color]



另外關于第三步他們提到。。

[code]3) Your server must allow .htaccess override
Edited Apache Directive from Override None to Override All and restarted Apache[/code]

哎。。。


另外關于 mod_rewrite 的檢查方法除暸在MAMBO裏麵的administration > System > System Info. > PHP Information tab.
之外另外一個方法就是

[code]1. 新建一个 PHP 文件
2. 插入以下代碼:
<?php phpinfo;() ?>
3. 命名為'phpinfo.php' 文件
4. 把這個文件傳到妳的站點上的根目錄
5. 然后打开你的浏览器瀏覽這個頁麵 ( 举例来说 http:// www.your-domain.com/phpinfo.php)
6. 查找 mod_rewrite[/code]

dato 2005-5-18 04:44

.htaccess apache性能优化是说如果开启该东东,会在所有目录下寻找.htaccess会降低性能.似乎要开启
#AccessFileName .htaccess

[quote]为什么我的.htaccess文件会被忽略

你可能在那个目录里面错误地使用了AllowOverride属性,如果这个属性被设置为None,
那么根本就不会查找.htaccess,请正确使用这个属性。[/quote]

这是直接写进httpd.conf的写法,不使用.htaccess
httpd.conf
----------
LoadModule rewrite_module modules/mod_rewrite.so
<Directory "e:/w3/www/test">
RewriteEngine On
# RewriteBase /YourMamboDirectory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php
AllowOverride None
Order allow,deny
Allow from all
</Directory>
---------

不知道有没有生成静态页面的方法.google根本就不收录我的页面,不知道哪里配置错误了,yahoo msnbot都蛮好的

underx 2005-5-18 08:55

我的服务器不支持rewrite功能~~~

:(

dato 2005-5-18 11:08

http://www.chongbai.com/post/1/7

不依靠Apache的Mod_rewrite的模块,而使用Mambo自带的SEF(Search Engine Friendly)功能。
Mambo自带SEF功能,可以让搜索引擎很好的索引。但如果是windows用户或者服务器限制使用.htaccess文件,就无法享受该功能。昨天我在Mambo的官方论坛上看到的此问题的解决办法,下面是步骤:

到后台开启SEF功能
不要把htaccess.txt重命名为.htaccess
打开includes/sef.php,找到 return $mosConfig_live_site."/".$string; 这句(大约在217行),修改为 return $mosConfig_live_site."/index.php/".$string;
此时,前台就可以使用 /index.php/content/view/9/34/ 这样的形式访问了。

zijie 2005-5-18 12:57

花了两个小时逛mambo主站,终于搞定了!
有空我会写一下心得。

genous 2005-5-18 13:09

[quote]原帖由 [i]zijie[/i] 发表
花了两个小时逛mambo主站,终于搞定了!
有空我会写一下心得。[/quote]

好哦··今天晚上··我來看結果···

genous 2005-5-18 13:38

[quote]原帖由 [i]dato[/i] 发表
http://www.chongbai.com/post/1/7

不依靠Apache的Mod_rewrite的模块,而使用Mambo自带的SEF(Search Engine Friendly)功能。
Mambo自带SEF功能,可以让搜索引擎很好的索引。但如果是windows用户或者服务器限制使用.htaccess文件,就无法享受该功能。昨天我在Mambo的官方论坛上看到的此问题的解决办法,下面是步骤:

到后台开启SEF功能
不要把htaccess.txt重命名为.htaccess
打开includes/sef.php,找到 return $mosConfig_live_site."/".$string; 这句(大约在217行),修改为 return $mosConfig_live_site."/index.php/".$string;
此时,前台就可以使用 /index.php/content/view/9/34/ 这样的形式访问了。[/quote]


這個方法是可以·但是 不知道傚果如何???、

zijie 2005-5-18 13:46

就是这种方法拉~

genous 2005-5-18 13:54

[quote]原帖由 [i]zijie[/i] 发表
就是这种方法拉~[/quote]

雖然是可以用··

但是隻實現··暸··地阯的實現··

但是···還是不能被蒐索到··

genous 2005-5-18 14:55

[quote][color=red]方法2:利用404page的原理 [/color]

1.用Apache的
1. 到后台开启SEF功能
2. 不要把htaccess.txt重命名为.htaccess
3. 打开includes/sef.php,找到
代码:
return $mosConfig_live_site."/".$string;  

这句(大约在217行),修改为
代码:
return $mosConfig_live_site."/index.php/".$string;  [/quote]


2. 不要把htaccess.txt重命名为.htaccess

有什么作用嗎?~~··?~?

·
我測試暸髮現改不不改都不影響MAMBO的運作。

zijie 2005-5-18 17:26

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


雖然是可以用··

但是隻實現··暸··地阯的實現··

但是···還是不能被蒐索到··[/quote]



是的,只是地址好看了,我们的目的就是要让网页的地址看起来像静态的页面,这样"据说"比较容易被搜索引擎收录。
SEF当然远不止这些,页面的设计,meta的运用,内容的主题性等等,可以改进的地方很多,地址只是其中之一~~

zijie 2005-5-18 17:31

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

2. 不要把htaccess.txt重命名为.htaccess

有什么作用嗎?~~··?~?

·
我測試暸髮現改不不改都不影響MAMBO的運作。[/quote]

如果服务器本来就不支持.htaccess的话是没有影响的

但如果服务器支持.htaccess但因为其他原因要用第2种方法,而没有取消.htaccess关于url处理的部分,两种方法同时起作用可能会乱了呀~~

qmark 2005-5-18 18:20

此时,前台就可以使用 /index.php/content/view/9/34/ 这样的形式访问了。
如果index.php能藏起来就好了。呵呵……

zijie 2005-5-18 21:59

其实这并不是真正的SEF,这种方法还是把URL参数传递给index.php,然后再转给sef.php来进行转换,把地址变成原来"="分割的那种参数形式,再继续传递。这就是为什么还要保留"index.php"这个东西。如果删了这个,服务器是不会用sef.php来转换的(废话)。

还有,如果没有index.php后面的"?",有的服务器会把index.php当作一个目录来处理,这样参数也传不到index.php里面,当然也不能转给sef.php来转换了...

至于"?"后面加一个"/",那是sef.php里面判断的一个小问题,只取"/"后面的进行判断,不够严谨阿.

lang3 2005-5-18 22:14

建议把方法二另开一贴,名为“[教学]如何开始使用SEF(二)”,这样更方便讨论。

genous 2005-5-18 22:17

如果隻是實現地阯更好看`而做這樣的脩改的話...

`
`
`
` 不屬于真正的SEF所以```頂樓的帖子的內容就必須做下說明```

``以免誤導別人````

`
`

zijie 2005-5-18 22:20

faint~~~
好吧,接收两位的意见
我改一下

genous 2005-5-18 22:54

[quote]原帖由 [i]zijie[/i] 发表
[quote]原帖由 [i]genous[/i] 发表


雖然是可以用··

但是隻實現··暸··地阯的實現··

但是···還是不能被蒐索到··[/quote]


是的,只是地址好看了,我们的目的就是要让网页的地址看起来像静态的页面,这样"据说"比较容易被搜索引擎收录。
SEF当然远不止这些,页面的设计,meta的运用,内容的主题性等等,可以改进的地方很多,地址只是其中之一~~[/quote]

我的 mambo 隻被 google 收暸··幾個頁麵

zijie 2005-5-18 23:21

似乎你的页面title有点问题

http://www.google.com/search?hl=en&lr=&q=site%3Ayy.9819.com&btnG=Search

标题都相似,这样不是很好
不知道是不是google找不到合适的标题,都把网址拿出来当标题了~~
呵呵~~

zijie 2005-5-18 23:36

搜了一下,mambochina的站点也是大部分的网址作标题,不知道为什么。
genous的网站套了一个框架播放音乐是不是啊?
不知道会不会影响,没研究过。
其实genous那里的内容不少,google应该很有收录的~~

genous 2005-5-18 23:53

是套筐暸一個·

但是GOOGLE收的都是 MAMBO 的``但是只有几个```页面```

`
`
`
`
明天有时间研究下如何让GOOGLE收录```

genous 2005-8-16 08:57

[quote]原帖由 [i]zijie[/i] 发表
似乎你的页面title有点问题

http://www.google.com/search?hl=en&lr=&q=site%3Ayy.9819.com&btnG=Search

标题都相似,这样不是很好
不知道是不是google找不到合适的标题,都把网址拿出来当标题了~~
呵呵~~[/quote]



现在没有了哦...

郁闷哦几乎全部转向了我的phpbb论坛


Results 1 - 10 of about 11,100 from yy.9819.com for . (0.26 seconds)

leo1 2005-8-23 12:17

[quote]原帖由 [i]zijie[/i] 发表
常见问题集中帖:

3.如果多方尝试还是不行,那么到后台把SEF关掉,然后把.htaccess重命名回来(可能这个文件变为不可见的了,那就用FTP命令强改吧~~呵呵~~)[/quote]

多方尝试还是不行!

正如您所说,这文件改了后不可见
可能是俺水平太菜,FTP命令怎么输入(详细)?
我在网上搜了FTP命令介绍,可是格式还是看不懂

受累,谢谢

zijie 2005-9-13 00:23

实在不好意思,暑假放假在家比较少上网,现在才看到您的问题.不知道您解决没有?
命令是:
[code]
RNFR /.htaccess
RNTO /htaccess.txt
[/code]
如果你用的是cuteftp,你可以选择"tools(工具)"-"Enter FTP Command...(输入ftp命令)"

[quote]
多方尝试还是不行!

正如您所说,这文件改了后不可见
可能是俺水平太菜,FTP命令怎么输入(详细)?
我在网上搜了FTP命令介绍,可是格式还是看不懂

受累,谢谢[/quote]

我是艾浪 2005-10-14 17:33

高质量!!!

luhai 2005-11-5 00:52

[讨论]复杂问题要简单处理

关于SEO,我想Mambo或Joomla自己已经说得很清楚了,大家使用中无非要知道:

1、mod_rewrite激活
在Apache的httpd.conf文件中找到下行,去掉行前的注释符号:
LoadModule rewrite_module modules/mod_rewrite.so

2、设置.htaccess可以override
在Apache的httpd.conf文件中找到下段
<Directory "你的站点绝对路径">
...
</Directory>
在其中设置:
    AllowOverride All

3、在windows下使用.htaccess
这个并不难,可以有很多方法(比如使用zip文件)把linux等平台的.htaccess文件倒到windows下,然后你便可以用notepad编辑它。不会有问题。

其它几个步骤见:
http://help.joomla.org/content/view/796/153/

我刚刚试过,完全没问题,测试环境为:
1. Platform: Windows Server 2003 Enterprise with SP1 + Apache 2.0.54
2. PHP version: 4.3.11
3. Joomla / Mambo version: Joomla 1.0.3

当然,如果你是租用外面的空间,没法自己控制那些参数的修改,就要看你和对方管理员摆龙门阵的水平了。

k0432 2005-11-16 12:20

[quote]上面说的只在mambo主体内有效,如果要在附加的组件、模块、模版里使用SEF,就要用到一个叫sefRelToAbs()的函数,把链接全部转成SEF格式.

比如:
原有链接index.php?option=com_contact&Itemid=$Itemid
现在就要改成:
echo sefRelToAbs("index.php?option=com_contact&Itemid=$Itemid");


如果你想进一步增强SEF、简化地址,可以看看SEF advance:
http://www.sakic.net/index.php?opti...ore=sef_adva[/quote]
怎样做才能将原有链接index.php?option=com_contact&Itemid=$Itemid
现在就要改成:
echo sefRelToAbs("index.php?option=com_contact&Itemid=$Itemid");
请告诉我要修改的文件在那,我的MAMBO4.5.3版

franky 2005-12-3 23:36

同样的问题

zijie 2005-12-3 23:57

每个组件的文件里面,凡是用到地址的地方都要改
也可以参照mambo自带的那几个组件,他们都有用SEF地址的
页: [1] 2
查看完整版本: [教学]如何开始使用SEF