Discuz论坛是动态页面,而站长们为了讨好搜索引擎,就需要用到伪静态配置,说起来也很简单,只是官方的配置教程比较乱,基础差一点的新手站长可能会犯迷糊,下面我就把我的步骤记录下来。
第一步、开启apache的Rewrite_module模块
打开httpd.conf查找代码:
#LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的#,重启WAMP。
第二部、登录后台
打开全局-SEO设置-URL 静态化,勾选你所需要静态化的选项。
第三步、创建.htaccess文件
在网站跟目录创建.htaccess文件,在文件类加入如下代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3&%1
</IfModule>
第四部、重启服务器
好了,到这里配置就结束了,这里有两点需要注意
1.文件.htaccess应该放在二级域名的根目录而不是Discuz的根目录,比如说我的论坛域名是www.haaijia.com/bbs,在默认情况下,论坛目录应该是\wamp\www\bbs,这里.htaccess文件应该放在\wamp\www\文件夹内而不是\wamp\www\bbs。
2.如果服务器配置了多个域名/网站,即单IP多域名多站点,配置方法和这个会有一定的区别,我会在后面的文章中讲到。