Windows-Server-2003

IIS 6 上的 IIRF 拒絕伺服器連接

  • March 26, 2012

我的客戶有兩個作為訂閱服務執行的站點(例如,稱為mainsite和)。subsite他們希望客戶subsite只有在他們的主站點上有付費訂閱時才能訪問,因此任何subsite直接訪問或不通過訪問的人都mainsite應該被重定向到mainsite(購買訂閱)。

我的任務是處理這個重定向,因為他們的伺服器執行在帶有 IIS 6 的 Windows Server 2003 上,我在subsite伺服器上安裝了 IIRF(離子 ISAPI 重寫過濾器)來處理重寫和重定向。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]

(當然,mainsite並且subsite被真實域所取代。)

但是,問題是,當我在伺服器上啟用 IIRF 時,它會完全停止提供頁面(在 Firefox 中,給出的錯誤是伺服器重置了連接)。不會發生重定向,也不會將日誌文件寫入給定的日誌文件位置。

根據捆綁的TestDriverTestParse程序,配置是完全有效的,那麼可能出了什麼問題?

事實證明,雖然我們的伺服器執行在 64 位版本的 Windows Server 上,但我們的 IIS 安裝執行在 32 位模式下。執行 Windows 事件日誌顯示我們擁有 64 位版本的 IIRF。32 位版本不會安裝在我們的伺服器上(足夠明智),所以手動安裝讓它工作。

引用自:https://serverfault.com/questions/372778