Discuz 论坛URL静态化设置

最近搭建一个Discuz 论坛,在搭建过程中遇到了一个比较棘手问题,在设置Discuz 论坛url静态化后论坛不能正常访问,总是返回找不到页面。

在参考了官方Discuz 论坛URL静态化设置的FAQ后重新设置,但问题依旧,开始还以为是租用的空间的问题,联系空间商得知可能是由于我论坛的 .htaccess文件有问题。

.htaccess是什么?

Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。国内的大多数虚拟主机就没有这个功能。我所知道的提供这个功能的有康盛世纪(就是Discuz的论坛服务商)。

启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。

笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。

Discuz 论坛URL静态化 .htaccess设置

下面是discuz官方给出的.htaccess设置规则,除了论坛目录地址需要修改,其他的不动。

# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /discuz
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1

这里要重点说明一下,因为我就是在设置 .htaccess文件时犯的错误:

1.在编辑 .htaccess文件时不能直接用记事本编辑,而应该用写字板或其他编辑器来编辑。

2.在论坛目录设置的时候要特别注意,RewriteBase /discuz 这里是指论坛目录,也就是你论坛主页存放的目录,而且 .htaccess这个文件也必须放在这个目录下面。

以上是我在URL静态化设置过程中遇到的问题,希望对遇到同样问题的朋友有所帮助。附:官方Discuz URL静态化应用FAQ

《Discuz 论坛URL静态化设置》有5个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注