我正在尝试在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' ==> --
谢谢,
阿什利
答案 0 :(得分:1)
TestDriver是一个独立的工具,用于测试IIRF的重写规则。不幸的是,该工具是有限的,因为它无法有效地评估测试服务器变量的条件。基于控制台的独立应用程序中没有服务器变量。
Check the doc。这就是它所说的:
请注意:TestDriver.exe程序是一个有用的测试工具,但它不能也不能取代Web服务器上下文中的实际测试。 testdriver不在HTTP服务器的上下文中运行,因此不适用于HTTP Server变量。特别是,如果在使用TestDriver.exe测试的ini文件中使用RewriteCond,并且那些RewriteCond语句引用服务器变量(例如%{HTTP_URL}或%{HTTP_REFERER}),那些RewriteCond语句将不会在TestDriver中表现相同他们将在ISAPI中表现出来的方式。对这些条件的测试对于验证实际操作性能没有用。
答案 1 :(得分:0)
您需要为替换指定绝对URL。否则,您的www.example.com
将被视为路径段。
RewriteCond %{HTTP_HOST} ^example\.com$ [I]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]