
本教程详细讲解如何将 iis 的 url 重写规则(特别是包含“非文件/目录”条件的规则)准确转换为 nginx 语法。文章将深入分析 iis 规则的构成,介绍 nginx 中 `rewrite`、`try_files` 和 `location` 块的用法,并通过完整的配置示例,演示如何实现将 `/leaderboard` 形式的 url 内部重写为 `/pages.php?page=leaderboard`,同时确保只对非实际文件或目录的请求生效。
1. 理解 IIS URL 重写规则
在将 IIS 的 URL 重写规则迁移到 Nginx 之前,首先需要深入理解 IIS 规则的各个组成部分及其逻辑。以下是一个典型的 IIS 重写规则示例:
这条规则的含义是:
-
匹配模式 (
):它使用正则表达式 ^([^/]+)/?$ 来匹配 URL 路径。 - ^:匹配字符串的开头。
- ([^/]+):捕获一个或多个非斜杠字符。这是规则的核心,它会捕获像 leaderboard 这样的页面名称,并将其存储在 {R:1} 中。
- /?:匹配一个可选的斜杠。
- $:匹配字符串的结尾。
- 例如,/leaderboard 和 /leaderboard/ 都能被匹配,并捕获 leaderboard。
- **条件 (`










