.htaccess
文件,并确保Apache的mod_rewrite模块已启用。织梦dedecms5.3伪静态及rewrite规则
开启伪静态
要在织梦CMS中实现伪静态,必须确保服务器支持伪静态功能,在后台进行以下设置:
1、进入织梦CMS后台管理系统。
2、选择“系统参数” > “核心设置”。
3、在“是否使用伪静态”选项中选择“是”。
4、如果启用了问答模块,则在“系统参数” > “模块设置”中也选择“是”。
设置栏目为动态页
为了不生成静态HTML文件,需要将栏目设置为动态页:
1、创建栏目或批量增加栏目时,栏目列表选项选择“使用动态页”。
2、添加新文章时,发布选项选择“仅动态浏览”。
三、修改include/channelunit.func.php文件
找到并修改include/channelunit.func.php文件中的代码:
// 查找以下代码 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid; // 替换成以下代码 $reurl = $GLOBALS['cfg_phpurl']."/list".$typeid.".html";
这一步是为了将导航及dede默认的动态链接换成静态。
设置重写规则
根据不同的服务器类型,设置相应的重写规则:
Apache服务器
在网站根目录创建一个.htaccess文件,内容如下:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !f RewriteCond %{REQUEST_FILENAME} !d RewriteRule index.html /index.php [L] RewriteRule ^plus/list([09]+).html$ /plus/list.php?tid=$1 [L] RewriteRule ^plus/view([09]+)([09]+).html$ /plus/view.php?arcID=$1&pageno=$2 [L] RewriteRule ^plus/list([09]+)([09]+)([09]+).html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 [L]
IIS服务器
在网站根目录创建一个httpd.ini文件,内容如下:
缓存3600秒 = 1 小时(hour) CacheClockRate 3600 RepeatLimit 32 RewriteRule ^(.*)/index.html $1/index.php [IIS_REWRITE] RewriteRule ^(.*)/plus/list([09]+).html $1/plus/list.php?tid=$2 [IIS_REWRITE] RewriteRule ^(.*)/plus/list([09]+)([09]+)([09]+).html $1/plus/list.php?tid=$2&TotalResult=$3&PageNo=$4 [IIS_REWRITE] RewriteRule ^(.*)/plus/view([09]+)([09]+).html $1/plus/view.php?arcID=$2&pageno=$3 [IIS_REWRITE]
Nginx服务器
在nginx配置文件中添加以下规则:
rewrite ^/list([09]+).html$ /plus/list.php?tid=$1 last; rewrite ^/list([09]+)([09]+)([09]+).html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last; rewrite ^/view([09]+)1.html$ /plus/view.php?arcID=$1 last; rewrite ^/view([09]+)([09]+).html$ /plus/view.php?aid=$1&pageno=$2 last;
FAQs
Q1: 如何在dedecms中开启伪静态?
A1: 在dedecms后台系统中,依次进入“系统参数” > “核心设置”,选择“是否使用伪静态”选项为“是”即可开启伪静态,如果启用了问答模块,还需要在“系统参数” > “模块设置”中也选择“是”。
Q2: 如何修改dedecms中的URL结构以实现伪静态?
A2: 要修改URL结构,首先需要在include/channelunit.func.php文件中进行以下替换:
// 查找以下代码 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid; // 替换成以下代码 $reurl = $GLOBALS['cfg_phpurl']."/list".$typeid.".html";
然后根据不同的服务器环境配置相应的重写规则,对于Apache服务器,需要在.htaccess文件中添加以下规则:
RewriteRule ^plus/list([09]+).html$ /plus/list.php?tid=$1 [L] RewriteRule ^plus/view([09]+)([09]+).html$ /plus/view.php?arcID=$1&pageno=$2 [L] RewriteRule ^plus/list([09]+)([09]+)([09]+).html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 [L]
Dedecms 5.3 伪静态及 Rewrite 规则设置指南
1. 准备工作
在开始之前,请确保以下准备工作已完成:
Dedecms 5.3 已安装并正常运行。
服务器支持伪静态功能,如 Apache 或 Nginx。
服务器已安装并开启了 mod_rewrite 模块(对于 Apache)。
2. 修改配置文件
2.1 Apache 服务器
1、打开 Apache 的配置文件httpd.conf
或httpd.conf
的备份文件。
2、找到LoadModule
行,确保mod_rewrite
模块已被加载,如果没有,取消注释并添加以下行:
“`
LoadModule rewrite_module modules/mod_rewrite.so
“`
3、在httpd.conf
文件中找到DirectoryIndex
行,确保其设置为:
“`
DirectoryIndex index.html index.htm index.php
“`
4、在httpd.conf
文件的末尾添加以下行以启用 Rewrite 模块:
“`
RewriteEngine On
“`
2.2 Nginx 服务器
1、打开 Nginx 的配置文件,通常位于/etc/nginx/nginx.conf
。
2、找到http
部分,添加以下行以启用 Rewrite 模块:
“`
rewrite_engine on;
“`
3. 设置 Rewrite 规则
3.1 Dedecms 伪静态规则
1、登录 Dedecms 管理后台。
2、前往“系统设置” > “系统参数”。
3、在“URL静态设置”中,选择“开启URL静态方式”。
4、保存设置后,Dedecms 会自动生成伪静态规则。
3.2 Apache Rewrite 规则示例
以下是一个简单的 Apache Rewrite 规则示例,用于处理 Dedecms 的文章和标签页面:
RewriteEngine On RewriteBase / RewriteRule ^article([09]+)([azAZ09]+).html$ /plus/view.php?aid=$1 [L] RewriteRule ^tags([azAZ09]+).html$ /plus/tags.php?tags=$1 [L]
3.3 Nginx Rewrite 规则示例
以下是一个简单的 Nginx Rewrite 规则示例,用于处理 Dedecms 的文章和标签页面:
location / { rewrite ^article([09]+)([azAZ09]+).html$ /plus/view.php?aid=$1 last; rewrite ^tags([azAZ09]+).html$ /plus/tags.php?tags=$1 last; }
4. 测试和保存
1、保存所有修改后的配置文件。
2、重启 Apache 或 Nginx 服务以应用新的配置。
3、在浏览器中访问一个静态页面(如文章或标签页面),检查链接是否正确转换为静态链接。
5. 注意事项
在修改服务器配置之前,请确保备份原始配置文件。
如果遇到错误,请检查配置文件中的语法错误或路径错误。
伪静态规则可能需要根据实际的 Dedecms 版本和服务器环境进行调整。
通过以上步骤,您应该能够成功设置 Dedecms 5.3 的伪静态及 Rewrite 规则。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1132342.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复