0

我有一个 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失败是因为仍然说“foo”而${REQUEST_FILENAME}不是“bar”。第一次重写后不更新。

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

4

1 回答 1

0

暂定答案...

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

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

于 2010-12-10T03:49:05.723 回答