【发布时间】:2014-07-24 11:58:07
【问题描述】:
我有一个 Wordpress 网站,由于一些限制,我需要在服务器端有照片的原件,但在前端有水印的,并且可以直接打开照片。我正在使用前端内容创建插件,并且(据我了解)并非所有插件都会使用自定义文件输入字段(使用 wp_handle_upload)进行分叉。我找到了很好的解决方案:使用 RewriteRule 的 php 文件 + htaccess 设置。问题是由于某种原因它对我不起作用。
解决办法是: http://dolcepixel.com/how-to-watermark-all-your-uploaded-images/
当我打开文件时:
/watermark.php?p=br&q=90&src=wp-content/uploads/link/to/file.jpg
一切都很好,图像上有水印,但是当此图像加载到页面上或浏览器中的直接链接时 - 没有任何反应。它加载没有水印的原始图像。
有两个主要设置: htaccess 规则
RewriteRule ^wp-content/uploads/(.*\.(jpe?g|gif|png))$ watermark.php?p=br&q=90&src=wp-content/uploads/$1
以及 mod_rewrite 部分的完整块:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^wp-content/uploads/(.*\.(jpe?g|gif|png))$ watermark.php?p=br&q=90&src=wp-content/uploads/$1
</IfModule>
php 文件更大,它的工作原理如我所见,问题出在其他问题上,但您可以在帖子顶部的链接中找到 .php。
我、Apache、.htaccess 或 Wordpress 有什么问题?如果有办法拒绝对 /uploads/ 的任何访问,并有可能通过 php 代理打开图像 - 这也是一个解决方案,但是当我尝试使用 /wp-content/uploads/.htaccess 时,“拒绝所有人” " 它不会工作,直接文件打开时浏览器没有任何问题。
【问题讨论】:
标签: php wordpress image .htaccess watermark