在强制执行RewriteBase /时修改子文件夹中的重写规则

时间:2012-10-09 13:06:13

标签: php mod-rewrite

我正在尝试为我网站上的图片添加水印。 它在我的本地测试PC上为我工作,但在托管上,他们强制执行

RewriteBase / 

这似乎使事情变得复杂。

.htaccess放在/ images / stories / virtuemart / product /文件夹中按预期工作了,我无法找到解决方法。

一些最新版本是:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^images/stories/virtuemart/product/(.*)\.(jpeg|jpg)$ /watermark/watermark.php [QSA,NC]

我也尝试将其放在根.htaccess

在我的测试服务器上运行的原始版本没有Rewritebase /在根目录中:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(gif|jpeg|jpg)$ ../../../watermark/watermark.php [QSA,NC]

我怀疑问题可能在于将URI与watermark.php相关联,或者可能需要在接收此请求的php中更改某些内容,例如:这部分:

$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
preg_match('@\.(gif|jpg|jpeg|png)$@i',$_SERVER['REQUEST_URI'],$m);
$ext = strtolower($m[1]);
$generated = CACHE.md5($_SERVER['REQUEST_URI']);

或规则应存储更多参数,例如:

RewriteCond %{REQUEST_URI}  ...

非常感谢任何帮助。

0 个答案:

没有答案