本帖最后由 coolhey 于 2012-11-29 11:44 编辑
以上是我的虚拟主机信息,WINNT,适用httpd.ini。按照官方的默认的这种url伪静态(forum-{fid}-{page}.html) ,我测试成功了,板块和帖子均可实现伪静态。
但由于我的版块区别比较明显(已经设置版块别名),想让会员输入www.xxx.com/aaa 这种直接访问,正如如地宝网一样,也利于SEO。
于是我按照论坛中的方法,一步一步配置,结果不成功,点击版块和帖子,均为404错误,麻烦高手们指正一下。
一.
打开source\function下的function_core.php
找到- if($type == 'forum_forumdisplay') {
- list(,,, $fid, $page, $extra) = func_get_args();
- $r = array(
- '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
- '{page}' => $page ? $page : 1,
- );
- } elseif($type == 'forum_viewthread') {
- list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
- $r = array(
- '{tid}' => $tid,
- '{page}' => $page ? $page : 1,
- '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
- );
复制代码
改为- if($type == 'forum_forumdisplay') {
- list(,,, $fid, $page, $extra) = func_get_args();
- $r = array(
- '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
- '{page}' => $page ,
- );
- } elseif($type == 'forum_viewthread') {
- list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
- $fid = DB::result_first("SELECT fid FROM ".DB::table('forum_thread')." WHERE tid = '$tid'");
- $r = array(
- '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
- '{tid}' => $tid,
- '{page}' => $page ,
- '{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
- );
复制代码
二.
然后进入网站后吧->''seo设置"->"url静态化"(我只有论坛,所以实际只有下面两个起作用)
在"论坛主题列表页"的格式中填写:{fid}/{page}
在"论坛主题内容页"的格式中填写:{fid}/{tid}{page}-{prepage}.html
可用 都√上了
点击最下面的确认后,查看当前 查看当前的 Rewrite 规则
找到 适合 win虚拟主机的
IIS Web Server(独立主机用户)
[ISAPI_Rewrite]
# 3600 = 1
hourCacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
RewriteRule ^(.*)/topic/(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4
RewriteRule ^(.*)/article/([0-9]+)([0-9]+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5
RewriteRule ^(.*)/(\w+)/([0-9]+)(\?(.*))*$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$5
RewriteRule ^(.*)/{fid}/([0-9]+)([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&$6
RewriteRule ^(.*)/group/([0-9]+)([0-9]+)\.html(\?(.*))*$ $1/forum\.php\?mod=group&fid=$2&page=$3&$5
RewriteRule ^(.*)/space/(username|uid)-(.+)\.html(\?(.*))*$ $1/home\.php\?mod=space&$2=$3&$5
RewriteRule ^(.*)/blog/([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/home\.php\?mod=space&uid=$2&do=blog&id=$3&$5
复制到空白文本,重命名为httpd.ind,上传主机根目录。
三.后台 工具更新缓存后,打开论坛,首页显示正常,但所有版块和帖子均显示 404错误。
请问各位大虾,我以上的步骤那里出现错误,或者 还需要做哪些工作?(需要注意的是,因为按照官方默认样式配置,我伪静态是成功的 )
*************************************************************************************************
万分感谢!万分感谢!万分感谢!万分感谢!万分感谢!万分感谢!万分感谢!万分感谢!万分感谢!万分感谢!
|