从 mod_rewrite 到 isapi_rewrite

Posted

技术标签:

【中文标题】从 mod_rewrite 到 isapi_rewrite【英文标题】:From mod_rewrite to isapi_rewrite 【发布时间】:2011-01-29 10:34:16 【问题描述】:

我有一个 Modx htaccess 文件,需要从 mod_rewrite 重写为 isapi_rewrite 2。

有人可以帮帮我吗? isapi_rewrite 2 需要更改以下几行:

选项 +FollowSymlinks 重写引擎开启 重写基础/

RewriteCond %HTTP_USER_AGENT ^.内部\虚拟\连接。$ [NC] 重写规则 .* - [F,L]

RewriteRule ^(manager|assets) - [L]

RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

非常感谢。

【问题讨论】:

你试过了吗? ISAPI 重写使用与 mod_rewrite 非常相似的语法。但是,我不相信 Options、RewriteEngine 或 RewriteBase 受支持,但我可能是错的。有一个类似RewriteBase的属性——UriMatchPrefix,但是文档中没有提到RewriteEngine。 【参考方案1】:

我强烈建议使用ISAPI_Rewrite v3,因为它有 99% 的 mod_rewrite 兼容语法(从上面的配置中只有选项不起作用),而 ISAPI_Rewrite v2 不支持“RewriteCond %REQUEST_FILENAME !-f”和一些其他指令。

此外,如果您使用的是 IIS 7 (7.5),您可以使用 Helicon Ape,它在 Windows 系统上实现了 30 多个 Apache 模块(包括 mod_rewrite)。 Ape 将按原样支持上述配置,无需任何修改。

【讨论】:

Helicon Ape也可以安装在windows server 2003上的IIS6上helicontech.blogspot.com/2009/03/…

以上是关于从 mod_rewrite 到 isapi_rewrite的主要内容,如果未能解决你的问题,请参考以下文章

使用 mod_rewrite 从 URL 的末尾隐藏 .php

如何从 mod_rewrited url 查询字符串中获取

从 xampp 移动到 apache 2.4.7 后,Laravel 路由返回 404。 mod_rewrite aur htaccess 或缺少 apache 设置?

使用 Mod_rewrite 将 HTTP 重定向到 HTTPS

htaccess Mod_Rewrite 从主域到子域

使用 mod_rewrite 重写用户代理规则