曼波建站搜索
热门搜索  曼波虚拟主机  多线主机  主机租用  主机托管  VPS 主机  智能建站  自助建站  曼波建站培训

SEF

Wikipedia,自由的百科全书

首先,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软

件重命名!

好了,现在可以试试了。

如果以上方法不成功,请看SEF方法2,利用404page的原理



使用SEF方法2:利用404page的原理

可查看官方论坛帖子:

http://forum.mamboserver.com/showthread.php?t=1255&page=1&pp=10

注意:此方法效果好坏未知!本文最后稍微解释。

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;

2.用IIS的

在上面的第3步时,代码改为

代码:

return $mosConfig_live_site."/index.php?".$string;

如果不能用那么可能需要在sef.php里加上下面的代码:

$_SERVER['REQUEST_URI'] = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME']);

// Append the query string if it exists and isn't null
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
  $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
} 

就在这行的上面:
<pre><nowiki>
if ($mosConfig_sef) {

这样SEF就可以脱离mod_rewrite工作了。



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

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

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

大部分用户可以用"/index.php/"这种形式,效果还不错。

常见问题

1.如果mambo主体使用了SEF,而某组件没有,会有问题吗?

答:不会影响使用,只不过该组件的地址没有优化罢了


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

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

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

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

则:

RewriteBase /mambo

或者

如果你的网站在(http://www.yourdomain.com/123/mambo)

则:

RewriteBase /123/mambo


如果你的网站在(http://www.yourdomain.com)

则:

RewriteBase /


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

命令是:

RNFR /.htaccess
RNTO /htaccess.txt

如果你用的是cuteftp,你可以选择"tools(工具)"-"Enter FTP Command...(输入ftp命令)"


4.SEF可能与1.0RC2cn版本的TMEdit可视化编辑器有冲突,导致登陆后网站就打不开

Personal tools