带有mod_rewrite的IIS清洁URL
-
25-09-2019 - |
题
我有一个mod_rewrite问题。或更准确地说,我对Isapi_rewrite有一个问题,这是IIS的mod_rewrite克隆。具体来说,ISAPI_REWRITE V3在IIS 7上运行。它的目的是对MOD_REWRITE的行为相同,因此我希望我的问题也适用于mod_rewrite。
我的问题归结为:我有一个脚本 bar.php
我想通过URL访问 foo
. 。我首先重写 foo
至 bar
. 。然后尝试将干净的URL转换为真实的文件名。
RewriteRule ^foo$ bar
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php
这 RewriteCond
失败是因为 ${REQUEST_FILENAME}
仍然说“ foo”而不是“ bar”。在第一次重写之后,它没有更新。
我该如何做这项工作?我可以简单地写下这个问题 RewriteRule ^foo$ bar.php
. 。但是我强烈希望将URL重新映射规则与文件扩展规则分开。
解决方案
暂定答案...
RewriteCond %{DOCUMENT_ROOT}/$0.php -f
通过使用 $0
我可以访问最新的重写URL,这使我感到高兴。但是我必须添加 %{DOCUMENT_ROOT}
将其变成文件名,这让我很难过。有点。
不隶属于 StackOverflow