0

注意:这个问题很棘手(决定它是否与 SO 相关),但这不是简单的 WordPress 问题。

我听说 WordPress.com 有一个独立的基础架构层(基于 Nginx 的服务器)用于图像,几乎独立于托管的 WordPress 博客。

问题是,WordPress.com 博客上的任何图像都可以通过附加w(宽度)和/或h(高度)参数来调整大小,如下所示:

http://serenescribe.files.wordpress.com/2012/04/cropped-p1000206.jpg?w=400
http://serenescribe.files.wordpress.com/2012/04/cropped-p1000206.jpg?h=200

脚本在网络上可用吗?(因为,他们总是说 “我们是开源的坚定信徒,我们会尽力开源。”

大多数动态图像大小调整脚本都不安全并且很容易受到攻击(Tim Thumb),或者写得不好,或者以性能为代价。有/有什么好的吗?

PS:可能还有其他几个动态图像调整脚本,例如 TimThumb。但我只对 WordPress.com 博客使用的内容感兴趣。

4

2 回答 2

3

(1)使用 TimThumb,然后重新调整图像大小就像附加一些参数一样简单:

http://example.com/timtumb.php?src=wp-content/uploads/2010/03/high_res_horsey.png&w=300&h=100

(2)然后在您站点的根 .htaccess 文件中添加这些重写规则:

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.(gif|png|jpg|jpeg)
RewriteCond %{QUERY_STRING} (w|h)=(.*)$
RewriteRule (.*) /full/path/to/timthumb.php?src=$1&%1=%2&%3=%4 [L]

快速分解规则:

  1. 检查 URI 是否作为文件存在。
  2. 检查有问题的 URI 是否为图像。根据需要扩展到其他格式。
  3. 检查宽度和高度中的一项或两项是否正在更改。
  4. 将以下文件作为变量传递给 timthumb:
    • $1 = 文件名
    • %1 = w 或 h
    • %2 = w 或 h 的值
    • %3 = w 或 h
    • %4 = w 或 h 的值

(3)现在,您几乎可以像在 WordPress.com 上一样调整图像大小,例如:

http://example.com/wp-content/uploads/2010/03/high_res_horsey.png?w=300&h=100

来自http://www.myrant.net/2011/03/07/mimicking-wordpress-coms-image-resize-uris/

于 2012-05-07T04:41:23.077 回答
0

我创建了一个简单的插件,它可以根据 markratledge 提供的解决方案帮助其他人。

您可以在https://github.com/ubc/wave-resize-image上找到它。

确保按照 readme.txt 中的说明更新您的 .htaccess 文件以使其正常工作。

于 2013-02-13T17:33:07.673 回答