IIS 6 上的 IIRF 拒绝服务器连接

IIS 6 上的 IIRF 拒绝服务器连接

我的客户有两个网站(称为mainsite和),它们以订阅服务的形式运行。他们希望客户只有在主网站上付费订阅后subsite才能访问,因此任何直接访问或未通过主网站访问的人都应被重定向到(购买订阅)。subsitesubsitemainsitemainsite

我负责处理此重定向,由于他们的服务器运行在带有 IIS 6 的 Windows Server 2003 上,因此我在服务器上安装了 IIRF(Ionic ISAPI 重写过滤器)subsite来处理重写和重定向。Iirf.inisubsite文件包含以下内容:

# Enable logging.
RewriteLogLevel 1
RewriteLog D:\sites\subsite\Files\IIRFLog

# Enable services.
RewriteEngine ON
StatusInquiry ON
IterationLimit 5

# Redirect to main site.
RewriteCond %{HTTP_REFERRER} ^https?://(?!mainsite)([-\w]*\.)(?!mainsite)\S*$ [I]
RedirectRule ^(.*)$ http://mainsite.com/

# Add `www.` to URLs.
RewriteCond %{HTTP_HOST} ^(subsite\.com).*$ [I]
RedirectRule ^/(.*)$ http://www.subsite.com/$1 [I,R=301]

# URL rewrites for WordPress pretty permalinks.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php/$1 [L]

(当然,mainsitesubsite代替了真实的域。)

但问题是,当我在服务器上启用 IIRF 时,它会完全停止提供页面(在 Firefox 中,给出的错误是服务器重置了连接)。没有发生重定向,也没有将日志文件写入给定的日志文件位置。

根据捆绑TestDriverTestParse程序,配置完全有效,那么可能出了什么问题?

答案1

事实证明,虽然我们的服务器运行的是 64 位版本的 Windows Server,但我们的 IIS 安装却运行在 32 位模式下。通过运行 Windows 事件日志发现我们拥有 64 位版本的 IIRF。32 位版本无法安装在我们的服务器上(这很合理),因此手动安装使其正常工作。

相关内容