我面临的问题与 CakePHP 有关,我将在该上下文中解释它,但它确实是一个 mod_rewrite 问题:
在 CakePHP 中,所有请求都被路由到/app/webroot
目录中。在该目录中,我有另一个名为assets
的目录,其中存储了所有用户上传的文件。我现在希望能够为该文件夹中的每个图像提供缩略图,并且我想在第一个请求时自动生成并缓存它们。
为此,我.htaccess
在目录中有一个文件assets
,它应该将所有thumbs/
以 PHPThumb 脚本开头的请求路由。现在我可以简单地将所述脚本放入assets
目录中,一切都会正常工作。但:
- 我想避免文件膨胀(因为可以有多个分辨率缩略图等等),因此宁愿将这些缩略图存储在
/app/tmp
目录中, - 整个事情是我正在开发的 CakePHP 插件的一部分,所以如果脚本可以保留在插件文件夹中,那就太好了。
我尝试过的(在/app/webroot/assets
目录内):
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^thumbs\/([^\/]*)\/(.*)$ ../../Plugin/MyPlugin/Lib/thumbnail.php?size=$1&path=$2 [QSA,L,S=2]
现在这行不通了。问题是其中的.htaccess
文件/app
以及/app/webroot
将所有内容路由到/app/webroot/index.php
(或任何物理文件webroot
)的文件。该S
标志似乎仅适用于同一文件中的规则。
我显然可以更改这些文件以允许thumbnail.php
,但正如我所说,它是插件的一部分,我希望尽可能保持它的配置少。
所以我的问题是:有没有办法在应用 in 之后绕过/禁用任何其他重写规则/app/webroot/assets/.htaccess
?