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地址的