我有一个mod_rewrite问题。或更准确地说,我对Isapi_rewrite有一个问题,这是IIS的mod_rewrite克隆。具体来说,ISAPI_REWRITE V3在IIS 7上运行。它的目的是对MOD_REWRITE的行为相同,因此我希望我的问题也适用于mod_rewrite。

我的问题归结为:我有一个脚本 bar.php 我想通过URL访问 foo. 。我首先重写 foobar. 。然后尝试将干净的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} 将其变成文件名,这让我很难过。有点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top