2

我正在尝试在 iirf 中做一些非常简单的事情。

我想要所有缺少 www 的请求。添加前缀。

这是我的 IsapiRewrite4.ini:

RewriteCond %{HTTP_HOST} ^example\.com$ [I]
RewriteRule ^(.*)$ www.example.com/$1 [R=301,L]

这是我的 SampleUrls.txt:

example.com
example.com/grants
www.example.com
www.example.com/grants

我将文件放在与 TestDriver.exe 相同的目录中,然后运行 ​​testdriver -d 。所有测试都被忽略:

NO ACTION 'example.com' ==> --

NO ACTION 'example.com/grants' ==> --

NO ACTION 'www. example.com' ==> --

NO ACTION 'www. example.com/grants' ==> --

谢谢,

阿什利

4

2 回答 2

1

TestDriver 是一个独立的工具,用于测试 IIRF 的重写规则。不幸的是,该工具是有限的,因为它不能有效地评估测试服务器变量的条件。在基于控制台的独立应用程序中没有服务器变量。

检查文档。它是这样说的:

请注意:TestDriver.exe 程序是一个有用的测试工具,但它不能也不能代替 Web 服务器环境中的实际测试。测试驱动程序不在 HTTP 服务器的上下文中运行,因此不适用于 HTTP 服务器变量。特别是,如果您在使用 TestDriver.exe 测试的 ini 文件中使用 RewriteCond,并且这些 RewriteCond 语句引用服务器变量(例如 %{HTTP_URL} 或 %{HTTP_REFERER}),则这些 RewriteCond 语句在 TestDriver 中的行为将不同他们在 ISAPI 中的行为方式。对这些条件的测试对于验证实际运行性能没有用处。

于 2009-10-25T22:53:45.760 回答
0

您需要为替换指定一个绝对 URL。否则,您www.example.com将被视为路径段。

RewriteCond %{HTTP_HOST} ^example\.com$ [I]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
于 2009-09-30T08:12:43.483 回答