我在 IIS6 上遇到 IIRF(Ionics Isapi 重写过滤器)问题(尽管在这种情况下不确定是否相关),它似乎正在处理初始请求,但在标准刷新时(即 F5 不是 CTRL + F5) ,大多数时候它只会 404。虽然它看起来是间歇性的。我的重写规则本身似乎是正确的,并且我已经在各种 RegEx 测试仪上对其进行了测试,并且它在清除缓存刷新时确实可以正常工作。我不是专家,但这似乎与以下事实有关URL,在这种情况下,它似乎是我想要重写的路径(尽管就像我说的那样,它是 404,所以在这些情况下它似乎实际上并没有进入这个路径)。我相信您很快就会发现我实际上只是在进行无扩展名的 URL 重写。我尝试添加规则以在 SCRIPT_NAME 上重写,但到目前为止还没有这样的运气。
我的配置是:
RewriteLog iirf
RewriteLogLevel 5
RewriteEngine ON
IterationLimit 5
UrlDecoding OFF
# Rewrite all extensionless URLs to index.html
RewriteRule ^[^.]*$ /appname/index.html
请参阅下面的日志 - 这是它不起作用的情况。我正在点击 /appname/task/5,但它似乎将其存储在 SCRIPT_NAME 中。奇怪的是,它似乎要重写的 URL 实际上是我希望它重写的 URL。同样,这仅适用于后续请求。在第一次请求时,它几乎总是毫无问题地重新写入并且页面加载正常。
Tue Jul 12 10:17:33 - 4432 - Cached: DLL_THREAD_DETACH
Tue Jul 12 10:17:33 - 4432 - Cached: DLL_THREAD_DETACH
Tue Jul 12 10:17:33 - 4432 - HttpFilterProc: SF_NOTIFY_URL_MAP
Tue Jul 12 10:17:33 - 4432 - HttpFilterProc: cfg= 0x01C8CC60
Tue Jul 12 10:17:33 - 4432 - HttpFilterProc: SF_NOTIFY_AUTH_COMPLETE
Tue Jul 12 10:17:33 - 4432 - DoRewrites
Tue Jul 12 10:17:33 - 4432 - GetServerVariable_AutoFree: getting 'QUERY_STRING'
Tue Jul 12 10:17:33 - 4432 - GetServerVariable_AutoFree: 1 bytes
Tue Jul 12 10:17:33 - 4432 - GetServerVariable_AutoFree: result ''
Tue Jul 12 10:17:33 - 4432 - GetHeader_AutoFree: getting 'method'
Tue Jul 12 10:17:33 - 4432 - GetHeader_AutoFree: 4 bytes ptr:0x000D93A8
Tue Jul 12 10:17:33 - 4432 - GetHeader_AutoFree: 'method' = 'GET'
Tue Jul 12 10:17:33 - 4432 - DoRewrites: Url: '/appname/index.html'
Tue Jul 12 10:17:33 - 4432 - EvaluateRules: depth=0
Tue Jul 12 10:17:33 - 4432 - GetServerVariable: getting 'SCRIPT_NAME'
Tue Jul 12 10:17:33 - 4432 - GetServerVariable: 16 bytes
Tue Jul 12 10:17:33 - 4432 - GetServerVariable: result '/appname/task/5'
Tue Jul 12 10:17:33 - 4432 - EvaluateRules: no RewriteBase
Tue Jul 12 10:17:33 - 4432 - EvaluateRules: Rule 1: pattern: ^[^.]*$ subject: /appname/index.html
Tue Jul 12 10:17:33 - 4432 - EvaluateRules: Rule 1: -1 (No match)
Tue Jul 12 10:17:33 - 4432 - EvaluateRules: returning 0
Tue Jul 12 10:17:33 - 4432 - DoRewrites: No Rewrite
任何帮助深表感谢!
谢谢