iis7.5 dede rewrite模块如何配置开启?

99ANYc3cd6
预计阅读时长 22 分钟
位置: 首页 DEDE建站 正文

这个过程的核心是使用 IIS URL Rewrite Module,它是一个功能强大的 URL 重写组件,类似于 Apache 的 mod_rewrite,对于 DedeCMS,我们主要用它来实现将动态的 php URL 转换成更美观、更利于 SEO 的静态化或伪静态 URL。

iis7.5 dede rewrite模块
(图片来源网络,侵删)

第一步:确认并安装 IIS URL Rewrite Module

如果你的 IIS 7.5 服务器上还没有安装这个模块,需要先进行安装。

  1. 下载模块

    • 访问微软官方下载页面:Microsoft URL Rewrite Module
    • 根据你的服务器系统(32位或64位)下载对应的版本,对于现在的服务器,几乎都是 64 位。
  2. 安装模块

    • 下载后是一个 msi 安装包,直接双击运行。
    • 按照安装向导的提示点击“下一步”即可完成安装,安装过程会自动将模块集成到 IIS 管理器中。
  3. 验证安装

    iis7.5 dede rewrite模块
    (图片来源网络,侵删)
    • 打开 IIS 管理器
    • 在左侧的“管理”区域,你应该能看到一个名为 “URL 重写” 的图标,如果能看到,说明安装成功。

第二步:配置 DedeCMS 的后台设置

在配置 IIS 之前,必须先登录 DedeCMS 后台,开启并设置好伪静态功能。

  1. 登录 DedeCMS 后台http://你的域名/dede/

  2. 进入系统基本参数设置

    • 在左侧菜单栏找到 “系统” -> “系统基本参数”
  3. 设置核心选项

    • 找到 “是否使用伪静态” 选项,将其设置为 “是”
    • 找到 “网站HTML设置” 部分,确保 “生成目录式首页”“是”,这有助于后续的规则匹配。
  4. 保存设置

    点击页面底部的“保存”按钮。

  5. 生成栏目和文章

    • 为了让伪静态规则生效,你需要重新生成一下网站的栏目和文章HTML。
    • 在后台依次进入 “生成” -> “一键更新网站” -> “更新栏目HTML” 和 “更新文档HTML”。

第三步:配置 IIS URL Rewrite 规则

这是最关键的一步,我们需要将 DedeCMS 的伪静态规则文件导入到 IIS 中。

  1. 获取 DedeCMS 规则文件

    • DedeCMS 程序包中已经包含了针对不同服务器的伪静态规则文件。
    • 在你的网站根目录下,找到 web.config 文件,如果不存在,你需要自己创建一个。
    • DedeCMS 在安装时,通常会在 /data/ 目录下生成一个名为 rewrite_iis.ini 的文件,里面包含了 IIS 的规则,你可以打开这个文件,将里面的规则复制到 web.config 中。
  2. 创建或编辑 web.config 文件

    • 在你的网站根目录(D:\wwwroot\mysite)下,新建一个名为 web.config 的文本文件。
    • 用记事本或代码编辑器(如 VS Code)打开它,并粘贴以下内容,这是一个非常完整和常用的 DedeCMS (V5.7) 的 IIS URL Rewrite 规则。
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <!-- 首页规则 -->
                    <rule name="Homepage" stopProcessing="true">
                        <match url="^index\.html$" ignoreCase="false" />
                        <action type="None" />
                    </rule>
                    <!-- 栏目目录规则 -->
                    <rule name="Category Index" stopProcessing="true">
                        <match url="^category/([a-zA-Z0-9_-]+)/([0-9]+)\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="category\.php\?/{1}/{2}" />
                    </rule>
                    <rule name="Category" stopProcessing="true">
                        <match url="^category/([a-zA-Z0-9_-]+)/([0-9]+)/([0-9]+)\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="category\.php\?/{1}/{2}/{3}" />
                    </rule>
                    <!-- 文章内容页规则 -->
                    <rule name="Article" stopProcessing="true">
                        <match url="^([a-zA-Z0-9_-]+)/([0-9]+)\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="{1}/view\.php\?aid={2}" />
                    </rule>
                    <!-- 搜索页规则 -->
                    <rule name="Search" stopProcessing="true">
                        <match url="^search\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="search\.php" />
                    </rule>
                    <rule name="Search Keywords" stopProcessing="true">
                        <match url="^search\.html\?keyword=(.+)$" ignoreCase="false" />
                        <action type="Rewrite" url="search\.php\?keyword={R:1}" />
                    </rule>
                    <!-- 标签列表页规则 -->
                    <rule name="Tag" stopProcessing="true">
                        <match url="^tags\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="tags\.php" />
                    </rule>
                    <rule name="Tag Name" stopProcessing="true">
                        <match url="^tags/([^/]+)\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="tags\.php\?/{1}" />
                    </rule>
                    <!-- 自定义页面规则 -->
                    <rule name="Custom Page" stopProcessing="true">
                        <match url="^([a-zA-Z0-9_-]+)\.html$" ignoreCase="false" />
                        <action type="Rewrite" url="{1}/index\.php" />
                    </rule>
                    <!-- 默认规则,防止重写静态文件和图片等 -->
                    <rule name="Static Files" stopProcessing="true">
                        <match url="^(.*)\.(css|js|jpg|jpeg|png|gif|bmp|ico|swf|eot|svg|ttf|woff|woff2|mp3|wav|zip|rar)$" ignoreCase="true" />
                        <action type="None" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>

    注意:上面的规则是通用模板,如果你的 DedeCMS 版本或自定义页面较多,可能需要根据你的实际需求调整规则,最准确的规则来源是 DedeCMS 官方文档或你所用版本的 rewrite_iis.ini 文件。

  3. 保存 web.config 文件

    • 将文件保存到你的网站根目录下,确保文件编码为 UTF-8(无 BOM),这是 IIS 推荐的编码方式,可以避免中文乱码问题。

第四步:验证和测试

完成以上配置后,就可以进行测试了。

  1. 重启 IIS 应用程序池

    • 为了确保新规则生效,建议重启一下你的网站对应的应用程序池。
    • 在 IIS 管理器中,点击左侧的“应用程序池”。
    • 找到你的网站对应的应用程序池,右键点击,选择“停止”,然后再右键点击,选择“启动”,或者直接选择“回收”。
  2. 清除浏览器缓存

    • Ctrl + F5 强制刷新浏览器,清除本地缓存。
  3. 访问测试

    • 在浏览器中访问你的网站首页、栏目页、文章页等。
    • 检查浏览器地址栏:URL 应该已经变成了你设置的伪静态格式(如 http://你的域名/article/123.html)。
    • 检查页面是否正常显示、图片、样式等都能正确加载。
    • 检查 IIS 重写日志(可选,用于排错):
      • 在 IIS 管理器中,双击“URL 重写”图标。
      • 在右侧的“操作”面板中,点击“查看请求的跟踪”。
      • 这会打开一个跟踪器窗口,当你访问网站时,可以看到 URL 是如何被匹配和重写的,对于排查规则错误非常有帮助。

常见问题与解决方法

  • 问题1:404 - 文件或目录未找到。
-- 展开阅读全文 --
头像
C语言为何需要减肥?
« 上一篇 2025-11-28
C语言searchprimarykey如何实现主键搜索?
下一篇 » 2025-11-28

相关文章

取消
微信二维码
支付宝二维码

目录[+]