如何使用 IIS URL 重写模块在找不到文件时重写 URL


How to rewrite URL when the file is not found with IIS URL Rewrite Module

我需要在IIS上运行一个PHP应用程序,我正在尝试移植如下所示的htaccess规则:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]
</IfModule>

我对 htaccess 的经验为零,但我被告知这些规则规定,如果未找到文件,则应将请求发送到索引.php并且应将查询字符串转移。请注意,这不是用户浏览器的重定向,而是传输所有帖子数据的纯服务器操作。

那么如何使用 IIS URL 重写模块创建这些规则呢?我应该使用什么规则来根据原始地址上丢失的文件重写 URL?我正在尝试在 IIS7 上执行此操作

如果您使用的是 IIS URL 重写模块,您应该能够直接导入您的 .htaccess。

当您在IIS中需要此站点时,双击URL重写图标,然后在右侧有一个"导入规则..."链接。单击此按钮,在您的.htaccess中,单击"导入",一切都应该可以正常工作。