Discuz X3.2的URL静态化设置流程

URL静态化利于搜索引擎收录和用户访问,所以针对这个进行网站优化还是非常重要的。很多站长设置好后会出现500错误提示和404的错误提示,本次针对这个情况进行介绍一下解决办法以及说明下URL静态化的设置流程。

Discuz X3.2的URL静态化设置流程
Discuz X3.2的URL静态化设置流程

本人的主机采用Linux虚拟主机,以下Linux虚拟主机举例:

第一步:

先进入后台全局 — SEO设置 —URL 静态化,位置进行设置,全部勾选右边的“可用”一列。
Rewrite 兼容性:设置为否;
仅对游客有效:设置为否;(否则登陆状态下无法测试是否成功,设置成功后可以根据需要修改为否和是)
设置好后直接提交即可。

第二步:
提交后还是在这个页面,点击右上方的“查看当前的 Rewrite 规则”文字,进行查看规则说明。

第三步:
进入页面后,会出现6个分类,分别为:
Apache Web Server(独立主机用户)
Apache Web Server(虚拟主机用户)
IIS Web Server(独立主机用户)
IIS7 Web Server(独立主机用户)
Zeus Web Server
Nginx Web Server
这个如何辨别自己是哪一类的,需要查看自己的“系统信息”进行判断的。
系统信息查看路径:点击后台的“首页”页面有出现系统信息的文字哦。
如图所示,本人的系统为:
服务器系统及 PHP Linux / PHP v5.2.17
服务器软件 Apache/2.2.3 (Red Hat)
所以选择的是Apache Web Server(虚拟主机用户),如果自己实在不知道是什么类别的话,最好联系空间服务商进行沟通一下的。
Discuz X2.5~X3.1的URL静态化设置流程

Apache Web Server(虚拟主机用户
Apache Web Server(虚拟主机用户

第四步:
选择好自己系统空间的类别后,接下来进行配置数据,本次主要以Apache Web Server(虚拟主机用户)为例子进行讲述。
这个类目的原代码为:
# 将 RewriteEngine 模式打开 RewriteEngine On #
修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuz
# 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
把这个代码复制到文本文档里面,然后另存为.htaccess文件就可以的,这里必须要注意以下几点:
1.代码中的这句话:【修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuz 】需要进行修改一下,
如果你的网站安装在根目录,直接将后面的discuz删除即可,改好后变为【修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /】
如果你的网站安装在bbs文件夹下面的话,直接将后面的discuz删除即可,改好后变为【修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /bbs】
也就是说这里必须修改为discuz论坛安装的目录下才可以成功的,否则会出现报错。
如图所示:另存为后,输入文件名称为:【.htaccess】,然后下面选择所有文件,编码选择ANSI,然后保存后,直接把这个文件上传到网站的所在目录就可以的,如果你的网站在根目录就把这个文件上传到根目录,如果在其它文件夹下就放在对应文件夹下就可以的。
htaccess文件
htaccess文件

第五步:
有些站长说为什么页面会提示404或者500呢?这个问题其实也很简单的。
400提示是由于找不到所在的文件夹,也就是说如果你设置好后台的URL静态化设置后,没有放入这个【.htaccess】的数据文件,或者放错了就会出现这个提示的,一般是要检查一下这个代码:【修改以下语句中的 /discuz 为您的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase /discuz 】最后面的discuz是要修改成自己论坛安装的地址的,这个非常重要。其次就是上传的地址要对,根目录就要上传到根目录,否则就会失败的哦。
Discuz X2.5~X3.1的URL静态化设置流程

第六步:
如果设置好后,页面提示是500的话,说明代码有误,典型的比如文件保存编码有问题导致的。所以第4步中另存为的时候,文件名要存准确,编码要选择正确才可以,如果你不知道自己适用哪个编码,可以每个都试一下,如果提示这个500说明编码还是错误的。虽然网址以及变更了,但是其实是无法访问的。
解决办法:更换保存的【.htaccess】的编码就可以了哦。
Discuz X2.5~X3.1的URL静态化设置流程

第七步:
如果你设置的网址变为类似http://www.你的域名.com/thread-35-1-1.html,说明你设置成功了哦,有些站长说为什么用户登录了就不是这个网址显示了,变为之前动态的是为什么呢?这个是由于之前设置的问题。
解决办法:进入后台全局 — SEO设置 —URL 静态化,设置为:【Rewrite 兼容性:否;仅对游客有效:否;】提交就可以了。

注意事项
需要注意的是,每次设置好或者上传好后,记得后台更新一下缓存数据,再多点几个链接试试是否成功的。
本次操作不对网站原来的数据文件有任何的影响,放心测试即可。
本次上传可以通过ftp方式直接上传即可,部分空间服务商可能不支持,设置不成功的建议联系跟自己的服务商联系一下。

相关新闻