使用mod_rewrite清除IIS中的URL

使用mod_rewrite清除IIS中的URL,iis,mod-rewrite,isapi-rewrite,Iis,Mod Rewrite,Isapi Rewrite,我有一个修改问题。或者更准确地说,我对ISAPI_Rewrite有一个问题,它是IIS的mod_Rewrite克隆。具体来说,ISAPI_重写运行在IIS 7上的v3。它的目标是与mod_rewrite的行为相同,所以我希望我的问题也适用于mod_rewrite 我的问题归结为:我有一个脚本bar.php,我想通过URL foo访问它。我先把foo改写成bar。然后尝试将干净的URL转换为真实的文件名 RewriteRule ^foo$ bar RewriteCond %{REQUEST_FI

我有一个修改问题。或者更准确地说,我对ISAPI_Rewrite有一个问题,它是IIS的mod_Rewrite克隆。具体来说,ISAPI_重写运行在IIS 7上的v3。它的目标是与mod_rewrite的行为相同,所以我希望我的问题也适用于mod_rewrite

我的问题归结为:我有一个脚本bar.php,我想通过URL foo访问它。我先把foo改写成bar。然后尝试将干净的URL转换为真实的文件名

RewriteRule ^foo$ bar

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php
重写条件失败,因为${REQUEST_FILENAME}仍然表示foo而不是bar。它在第一次重写后不会更新

我怎样才能做到这一点?我可以通过编写RewriteRule^foo$bar.php来解决这个问题。但我强烈希望将URL重新映射规则与文件扩展名规则分开。

暂定答案

RewriteCond %{DOCUMENT_ROOT}/$0.php -f

通过使用$0,我可以访问最新重写的URL,这让我很高兴。但我必须添加%{DOCUMENT_ROOT}才能将其转换为文件名,这让我很难过。有点混乱。

啊,好吧,除非有更好的答案,否则这就是我要用的!