在Discuz X1.5中,设置伪静态是提高网站性能和搜索引擎优化(SEO)的重要步骤,本文将详细介绍如何在Windows系统下通过配置.htaccess
和httpd.ini
文件来实现伪静态。
.htaccess文件设置
1. 创建和编辑.htaccess文件
由于Win32系统无法直接创建.htaccess
文件,用户需要从其他系统中拷贝一份,或者在Discuz.net技术支持栏目中下载此文件,编辑并修改.htaccess
文件,添加以下内容:
将 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([09]+)([09]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^forum(\w+)([09]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^thread([09]+)([09]+)([09]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page%3D$3&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^group([09]+)([09]+)\.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 ^([az]+)(.+)\.html$ $1.php?rewrite=$2&%1
2. 上传和检查.htaccess文件
将编辑好的.htaccess
文件上传到论坛所在的目录中,然后进入论坛系统的搜索引擎优化设置,根据需要开启URL静态化功能。
httpd.ini文件设置
1. 创建和编辑httpd.ini文件
对于IIS服务器,可以创建一个名为httpd.ini
的文件,复制以下代码到该文件中:
[ISAPI_Rewrite] 3600 = 1 hour CacheClockRate 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&$3 RewriteRule ^(.*)/article([09]+)\.html\?*(.*)$ $1/portal\.php\?mod=article&articleid=$2&$3 RewriteRule ^(.*)/forum(\w+)([09]+)\.html\?*(.*)$ $1/forum\.php\?mod=forumdisplay&fid=$2&page=$3&$4 RewriteRule ^(.*)/thread([09]+)([09]+)([09]+)\.html\?*(.*)$ $1/forum\.php\?mod=viewthread&tid=$2&extra=page%3D$4&page=$3&$5 RewriteRule ^(.*)/group([09]+)([09]+)\.html\?*(.*)$ $1/forum\.php\?mod=group&fid=$2&page=$3&$4 RewriteRule ^(.*)/space(username|uid)(.+)\.html\?*(.*)$ $1/home\.php\?mod=space&$2=$3&$4 RewriteRule ^(.*)/([az]+)(.+)\.html\?*(.*)$ $1/$2.php\?rewrite=$3&$4
2. 上传和检查httpd.ini文件
将编辑好的httpd.ini
文件上传到论坛根目录下,检查论坛所在目录中是否存在.htaccess
文件,如果不存在,请手工建立此文件。
常见问题解答FAQs
1、Q: 如果在Win32系统下无法创建.htaccess
文件怎么办?
A: 在Win32系统下,可以通过从其他系统中拷贝.htaccess
文件,或者在Discuz.net技术支持栏目中下载此文件来解决无法直接创建的问题。
2、Q:httpd.ini
文件与.htaccess
文件有什么区别?
A:httpd.ini
文件主要用于配置IIS的重写组件,类似于Apache服务器中的.htaccess
文件。httpd.ini
的功能没有.htaccess
那么强大,规则上没有那么丰富,细节上也有很大的不同。
Discuz X1.5 htaccess和httpd.ini文件设置 一、.htaccess文件设置 1. 开启重写功能 在根目录的 .htaccess 文件中添加以下代码以开启重写功能:
RewriteEngine On
2. 设置重写规则 以下是一些常见的重写规则,可以根据实际需求进行修改: a. 默认规则
RewriteRule ^index.php$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !f
RewriteCond %{REQUEST_FILENAME} !d
RewriteRule . index.php [L]
b. 静态化页面规则
RewriteRule ^forum(d+)(d+).html$ forum.php?mod=forumdisplay&fid=$1&page=$2 [L]
c. 动态内容规则
RewriteRule ^thread(d+)(d+)(d+).html$ thread.php?fid=$1&tid=$2&pid=$3 [L]
3. 设置URL后缀 如果需要设置URL后缀为 .html,可以添加以下规则:
RewriteRule ^(.*).html$ $1 [R=301,L]
二、httpd.ini文件设置 1. 修改文件扩展名 在 httpd.ini 文件中找到以下配置项并修改:
AddType application/xhttpdphp .php
改为:
AddType application/xhttpdphp .php .html
2. 设置默认文档 在 httpd.ini 文件中找到以下配置项并修改:
DocumentRoot "D:/wwwroot"
改为:
DocumentRoot "D:/wwwroot"
DirectoryIndex index.php index.html
3. 设置错误日志 在 httpd.ini 文件中找到以下配置项并修改:
ErrorLog "logs/error.log"
改为:
ErrorLog "logs/error.log"
LogLevel warn
4. 设置PHP扩展名 在 httpd.ini 文件中找到以下配置项并修改:
LoadModule php5_module modules/libphp5.so
改为:
LoadModule php7_module modules/libphp7.so
注意:根据实际使用的PHP版本进行修改。 5. 设置PHP配置文件 在 httpd.ini 文件中找到以下配置项并修改:
php_value include_path "."
改为:
php_value include_path ".:D:/wwwroot/php_lib"
将D:/wwwroot/php_lib
替换为实际存放PHP库文件的路径。 注意事项 在修改配置文件后,需要重启Apache服务器使更改生效。 以上配置仅供参考,具体设置可能因服务器环境和需求而有所不同。