Discuz推出2.5版本了,就上传了程序试试,确实很强大,不过在站点开启伪静态后遇到了一些问题,伪静态后出现404,或者提示插件不存在已关闭,在官方论坛逛了好久也没法得到解决,
站点服务器是支持伪静态的:
服务器系统及 PHPLinux / PHP v5.2.17
服务器软件Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 mod_fcgid/2.3.6
服务器 MySQL 版本5.1.60-rel13.1-log
偶然间在一个帖子里发现了解决办法。。
我的步骤,首先登陆后台,开启了站点伪静态,并且按照以下 Rewrite规则生成.htaccess文件,上传文件至程序根目录,下面加红的一句要留意了,如果程序在根目录,按照下面的规则就可以;如果是多站点主机,就需要上传到存放论坛程序的那个文件夹,因为那才算是根目录,规则里的设置也需要做相应的更改,上传到错误的目录,一般会提示404错误,要留意,有问题也可以联系我交流(限linux Apache,windows主机没用过
)
规则:Apache Web Server(虚拟主机用户)
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /
# Rewrite 系统规则请勿修改
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+).html$ portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^article-([0-9]+)-([0-9]+).html$ portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^forum-(w+)-([0-9]+).html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^group-([0-9]+)-([0-9]+).html$ forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^space-(username|uid)-(.+).html$ home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^blog-([0-9]+)-([0-9]+).html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+).html$ archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_-]+).html$ plugin.php?id=$1:$2&%1
如果配置都是正确的还是不行,提示信息:插件不存在或已关闭[ 点击这里返回上一页 ]
可以试试下面的办法,调整静态化的格式,不要使用系统默认的,然后更改一下相应的Rewrite 规则,然后上传,就可以了,如图
具体是为什么咱也不清楚,有高手解答:
可能的原因1:就是没改过的,点查看当前的 Rewrite 规则的有问题 ,改过后生成的规则是对的
可能的原因2:你服务器空间总设置过的discuz规则跟现在你一个空间自己设置的规则有冲突 可能两个规则同时生效的 所以就有冲突了。
欢迎多多交流,我是菜鸟,本文算是解决问题的记录吧。
转载请注明来源:微笑の风 » Discuz! X2.5伪静态后出现404或者提示插件不存在已关闭