我正在尝试为我网站上的图像添加水印。它在我的本地测试 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} ...
任何帮助是极大的赞赏。