分類
.net

Rewrite造成的403問題

之前介紹過這個軟體: ISAPIREWRITE http://diary.tw/archives/260

在 iis 下, 使用這個 isapirewrite 時, 要特別注意應用程式集區問題, 若是 rewrite 前後 application 使用不同的 app pool 時, 會發生 403 拒絕存取.

簡單地說, rewrite 的前後, 使用相同的 app pool 時, 這個問題就不會發生, 但有時為了增進效能及除錯應用, 或是獨立 web application, 切到不同的 app pool.

例如:

RewriteCond ^/test/([a-z0-9]+) /test/url.aspx?uid=$1 [I, CL, L]

都是在 /test 下的這個 app pool, 可以正常工作, 若是以下的 rewrite:

RewriteCond ^/test2/([a-z0-9]+) /test/url.aspx?uid=$1 [I, CL, L]

若是 /test2 和 /test 使用不同 app pool (應用程式集區) 時, 就會發生 403 的拒絕存取.

這是今天在除錯時發現的一個重大問題. 若有不明的 403 在 rewrite 上時, 可以往這個方向檢查看看!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *