IIS6、Windows 2003 Server 上的 Ionic Isapi Rewrite 错误

IIS6、Windows 2003 Server 上的 Ionic Isapi Rewrite 错误

首先,我的设置是运行 Windows 2003 Server 的 VPS,上面有多个域 IIS 6、Plesk

IsapiRewrite4.ini

RewriteLogLevel 3

RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule ^/(.*)$        http://www.mydomain.com/$1  [R]

这是他们的基本示例之一。Ionic 安装和设置正确,因为如果我使用另一条规则(更简单的规则...例如下面的规则),它会立即生效

# IsapiRewrite4.ini
#

RewriteLogLevel 3

#
# This ini file illustrates the use of a redirect rule. 
# Any incoming URL that starts with an uppercase W
# will be redirected to the specified server.

RewriteRule ^/(W.*)$  http://server.dyndns.org:7070/$1   [R]

这个在 TestDriver 工具中有效,在 TestParse 工具中没有一个给出任何错误或警告,但它在 Web 服务器上不起作用... 一个规则有效意味着 isapi 模块有效。我正在使用最后一个版本。

RedirectRule http://mydomain.com/someplace/somefile.html http://www.mydomain.com/howto/someplace/anotherfile.html  [I,L]

两个例子都取自http://iirf.codeplex.com/Wiki/View.aspx?title=Redirection&referringTitle=Home 所以我的 IsapiRewrite4.ini 需要执行这两项任务:自动转换和重定向多个 URL。你能帮忙吗?我真的不知道我做错了什么。

答案1

重定向规则是新语法。301 或 302 重定向的旧语法是重写规则带有 [R] 标志,但它变得非常混乱,所以它被改变了。在当前版本的 IIRF 中,要进行重定向,您可以使用重定向规则指示。


注意:
从 IIRF v2.1.1.5 开始,带有 [R] 标志的 RewriteRule 语法再次受支持,以便与 mod_rewrite 兼容。

答案2

好吧,我已经设法让它工作了。我在使用 Ionic 过滤器 .dll 文件时遇到了一些安全权限问题

一开始我使用了 RewriteRule,但在使用 TestParser.exe 测试后,我将其更改为 RedirectRule。无论如何,这是我现在正在使用的,它运行正常:

RedirectRule ^/features/sepia.html$ http://www.mywebsitename.com/howto/add-effect/sepia.html [R=301]

答案3

如果您尝试使用RewriteRule带有“R”标志(远程重定向)而不是“ RedirectRule”的关键字,会发生什么情况:

 RewriteRule http://mydomain.com/someplace/somefile.html http://www.mydomain.com/howto/someplace/anotherfile.html  [R,I,L]

答案4

如果 URL 中有破折号 (-) 字符,则 RedirectRule 可以很好地工作。例如 /vitamin-d/、/vitamin-d/index.htm

RewriteRule 与 dash 存在问题。

相关内容