4

使用 .htaccess mod rewrite,我想重写一个 url,检查该文件是否存在,如果不使用在第一次重写期间删除的原始 url 的一部分再次重写到另一个 url。

例如,如果原始 url 是这个

/images/3001/zebra.jpg

我想检查文件是否存在 /images/cached/zebra.jpg 并在它存在时提供它。

如果不是,我想重写为 /image.php?id=3001

非常感谢,菲尔

4

1 回答 1

3

在文档根目录的 htaccess 文件中,在您可能已经拥有的任何规则之前添加这些规则:

RewriteEngine On

# cached copy exists
RewriteCond %{REQUEST_URI} ^/images/[0-9]+/(.+)$
RewriteCond %{DOCUMENT_ROOT}/images/cached/%1 -f
RewriteRule ^ /images/cached/%1 [L]

# cached copy doesn't exist
RewriteCond %{REQUEST_URI} ^/images/([0-9]+)/(.+)$
RewriteCond %{DOCUMENT_ROOT}/images/cached/%2 !-f
RewriteRule ^ /image.php?id=%1 [L]
于 2013-03-03T08:09:36.663 回答