45 123
发新话题
打印

[教学]如何开始使用SEF

[教学]如何开始使用SEF

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

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

下面开始:

使用SEF方法1:用mambo自带的SEF

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



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


3) Your server must allow .htaccess override服务器必须允许对.htaccess文件的重载
检查方法:删除 .htaccess file里的所有内容,写上下面的代码:
复制内容到剪贴板
代码:
Redirect /google.html http://www.google.com
然后用浏览网页http://www.yoursite.com/google.html
如果转向了 google.com 那么就OK了~~
现在那杯咖啡应该刚好可以喝了~~什么?你已经喝完了?  ......


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


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

好了,现在可以试试了。

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


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

TOP

上面说的只在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

TOP

常见问题集中帖:
提问前请先看完本贴!
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)
复制内容到剪贴板
代码:
RewriteBase /mambo
or

If your Domain is (http://www.yourdomain.com/123/mambo)
复制内容到剪贴板
代码:
RewriteBase /123/mambo
If your Domain is (http://www.yourdomain.com)
复制内容到剪贴板
代码:
RewriteBase /
3.如果多方尝试还是不行,那么到后台把SEF关掉,然后把.htaccess重命名回来(可能这个文件变为不可见的了,那就用FTP命令强改吧~~呵呵~~)

TOP

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

引用:
原帖由 zijie 发表
复制内容到剪贴板
代码:
Redirect /google.html http://www.google.com
gg一定会K你,PR是上去了,可是被封的日子也不远了

TOP

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

引用:
原帖由 blackfoxz 发表
引用:
原帖由 zijie 发表
复制内容到剪贴板
代码:
Redirect /google.html http://www.google.com
gg一定会K你,PR是上去了,可是被封的日子也不远了
这个...恩...这只是一个“检查方法”,检查完请改回来!

TOP

谢谢楼主。

TOP

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

TOP

我现在是满脑子的问号。。。
没有做不到的模板.

TOP

我对第三步有疑问
引用:
3) Your server must allow .htaccess override
服务器必须允许对.htaccess文件的重载
检查方法:删除 .htaccess file里的所有内容,写上下面的代码:
复制内容到剪贴板
代码:
Redirect /google.html http://www.google.com
假如这步不能实现的话。就说明了空间商的配置没有配合.


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


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

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

这样////
引用:
<Directory /www/xxxx.net>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>  
没有做不到的模板.

TOP

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

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的解决方案,我另发了一帖询问详细情况,可惜还没有恢复,高手也帮忙帮忙看看吧
mambo整合discuz同步注册登录,全站utf-8编码,php5+mysql5
http://www.bytea.net

TOP

建议此篇文章置顶!超强推荐!
启用新域名:Mambo智能建站
为了生活,开始都市流窜~~~~~~~~

TOP

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

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的解决方案,我另发了一帖询问详细情况,可惜还没有恢复,高手也帮忙帮忙看看吧
那個國外的那個帖子我都快繙完暸。。。他們至始至終都在研究的一個問題就是 “mod_rewrite” 問題 和“RewriteBase /YourMamboDirectory”的設置問題
复制内容到剪贴板
代码:
.htaccess override
具體來說我不怎么明白這個是什么意思。。基本上國外的用戶好像在這一步上都沒有問題。。
复制内容到剪贴板
代码:
#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update YourMamboDirectory (just / for root)
#意思就是路徑相對于站點而言。
#非實際路徑
#設置妳的MAMBO目錄名稱(相對于根目錄而言)

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

RewriteBase /mambo
  

or

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

RewriteBase /123/mambo


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

RewriteBase /




另外關于第三步他們提到。。
复制内容到剪贴板
代码:
3) Your server must allow .htaccess override
Edited Apache Directive from Override None to Override All and restarted Apache
哎。。。


另外關于 mod_rewrite 的檢查方法除暸在MAMBO裏麵的administration > System > System Info. > PHP Information tab.
之外另外一個方法就是
复制内容到剪贴板
代码:
1. 新建一个 PHP 文件
2. 插入以下代碼:
<?php phpinfo;() ?>
3. 命名為'phpinfo.php' 文件
4. 把這個文件傳到妳的站點上的根目錄
5. 然后打开你的浏览器瀏覽這個頁麵 ( 举例来说 http:// www.your-domain.com/phpinfo.php)
6. 查找 mod_rewrite
没有做不到的模板.

TOP

.htaccess apache性能优化是说如果开启该东东,会在所有目录下寻找.htaccess会降低性能.似乎要开启
#AccessFileName .htaccess
引用:
为什么我的.htaccess文件会被忽略

你可能在那个目录里面错误地使用了AllowOverride属性,如果这个属性被设置为None,
那么根本就不会查找.htaccess,请正确使用这个属性。
这是直接写进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都蛮好的
[url=http://dato.minidns.net]http://dato.minidns.net[/url] 闲时记得来这里添砖加瓦 [url=http://wiki.mambochina.net/index.php/%E5%A6%82%E4%BD%95%E7%BC%96%E8%BE%91%E9%A1%B5%E9%9D%A2]http://wiki.mambochina.net[/url]

TOP

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

:(

TOP

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/ 这样的形式访问了。
[url=http://dato.minidns.net]http://dato.minidns.net[/url] 闲时记得来这里添砖加瓦 [url=http://wiki.mambochina.net/index.php/%E5%A6%82%E4%BD%95%E7%BC%96%E8%BE%91%E9%A1%B5%E9%9D%A2]http://wiki.mambochina.net[/url]

TOP

花了两个小时逛mambo主站,终于搞定了!
有空我会写一下心得。
mambo整合discuz同步注册登录,全站utf-8编码,php5+mysql5
http://www.bytea.net

TOP

引用:
原帖由 zijie 发表
花了两个小时逛mambo主站,终于搞定了!
有空我会写一下心得。
好哦··今天晚上··我來看結果···
没有做不到的模板.

TOP

引用:
原帖由 dato 发表
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/ 这样的形式访问了。
這個方法是可以·但是 不知道傚果如何???、
没有做不到的模板.

TOP

就是这种方法拉~
mambo整合discuz同步注册登录,全站utf-8编码,php5+mysql5
http://www.bytea.net

TOP

引用:
原帖由 zijie 发表
就是这种方法拉~
雖然是可以用··

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

但是···還是不能被蒐索到··
没有做不到的模板.

TOP

 45 123
发新话题