插件窝 干货文章 Windows Server 2019 配置IIS支持伪静态

Windows Server 2019 配置IIS支持伪静态

规则 URL Rewrite 选择 394    来源:    2025-05-11

Windows Server 2019 配置 IIS 支持伪静态

准备工作

  1. 确保已安装 IIS 服务
  2. 确保已安装 URL Rewrite 模块

安装 URL Rewrite 模块

如果尚未安装 URL Rewrite 模块,请按以下步骤操作:

  1. 打开 服务器管理器
  2. 点击 添加角色和功能
  3. 选择 基于角色或基于功能的安装
  4. 选择你的服务器
  5. 功能 部分,展开 Web 服务器 (IIS) > Web 服务器 > 应用程序开发
  6. 勾选 URL 重写
  7. 完成安装向导

或者直接从 Microsoft 官网下载安装: URL Rewrite 模块下载

配置伪静态规则

方法一:通过 web.config 文件配置

  1. 在网站根目录下创建或编辑 web.config 文件
  2. 添加以下规则(以常见的 WordPress 伪静态规则为例):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="WordPress Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

方法二:通过 IIS 管理器配置

  1. 打开 IIS 管理器
  2. 选择你要配置的网站
  3. 双击 URL 重写
  4. 点击右侧 添加规则
  5. 选择 空白规则
  6. 配置规则:
    • 名称:输入有意义的名称(如"伪静态规则")
    • 匹配 URL:
      • 请求的 URL:选择"与模式匹配"
      • 使用:选择"正则表达式"
      • 模式:输入 .*(匹配所有URL)
    • 条件:
      • 逻辑分组:选择"全部匹配"
      • 添加条件:
      • 条件输入:{REQUEST_FILENAME}
      • 检查输入字符串是否:选择"不是文件"
      • 添加第二个条件:
      • 条件输入:{REQUEST_FILENAME}
      • 检查输入字符串是否:选择"不是目录"
    • 操作:
      • 操作类型:选择"重写"
      • 重写 URL:输入 index.php(根据你的程序入口文件调整)
  7. 点击 应用

常见问题解决

1. 404 错误

  • 确保 web.config 文件已正确放置在网站根目录
  • 检查规则是否正确,特别是重写的目标文件路径
  • 确保网站应用程序池已启用.NET支持(如果使用ASP.NET)

2. 500 错误

  • 检查 web.config 文件格式是否正确
  • 确保 URL Rewrite 模块已正确安装
  • 查看 Windows 事件查看器中的详细错误信息

3. 伪静态规则不生效

  • 清除浏览器缓存后测试
  • 重启 IIS 服务:iisreset 命令
  • 检查是否有其他规则冲突

高级配置

自定义伪静态规则

根据你的应用程序需求,可以自定义更复杂的规则。例如:

<rule name="Product Details">
    <match url="^product/([0-9]+)/([_0-9a-z-]+)" />
    <action type="Rewrite" url="product.aspx?id={R:1}&amp;name={R:2}" />
</rule>

条件重定向

<rule name="Force HTTPS" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>

通过以上步骤,你应该已经成功在 Windows Server 2019 的 IIS 上配置了伪静态支持。根据你的具体应用程序需求,可能需要调整上述规则。