首先,我的设置是运行 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 存在问题。