1

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

RewriteBase / 

这似乎使事情复杂了一点。

放在 /images/stories/virtuemart/product/ 文件夹中的 .htaccess 确实可以按预期工作,但我无法弄清楚修复它的方法。

一些最新版本是:

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}  ...

任何帮助是极大的赞赏。

4

0 回答 0