带有 .htaccess 的 timthumb.php 友好 URL

Posted

技术标签:

【中文标题】带有 .htaccess 的 timthumb.php 友好 URL【英文标题】:timthumb.php friendly URL with .htaccess 【发布时间】:2013-03-24 05:52:21 【问题描述】:

timthumb.php 是一个调整大小/裁剪 php 脚本,在数千个网站中使用,我在我的 wordpress 博客中使用它,但我遇到了一个问题。

出于安全原因,我使用了一个插件来更改 wordpress 默认路径,例如:

示例

之前mysite.com/wp-content/uploads/2013/03/example.jpg 之后mysite.com/images/example.jpg

timthumb 根本无法识别新路径,似乎检索到 404 错误,找不到图像

我的问题:

如果您尝试直接访问 example.jpg,它可以正常工作,但使用 timthumb 则不能 mysite.com/images/example.jpg您可以看到该图像,即使该文件实际上位于 mysite 中。 com/wp-content/uploads/2013/03/example.jpg但timthumb无法识别并输出上述错误

当前.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^images/(.*) /wp-content/uploads/$1 [QSA,L]
RewriteRule ^lib/(.*) /wp-content/themes/mytheme/$1 [QSA,L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
RewriteRule ^/wp-content/themes/mytheme/$ lib/ [R,L]
RewriteRule ^/wp-content/uploads/$ images/ [R,L]
RewriteRule ^lib/$ /wp-content/themes/mytheme/ [L,NC]
RewriteRule ^images/$ /wp-content/uploads/ [L,NC]
</IfModule>

【问题讨论】:

如果您查看脚本(它在客户端执行)。您在不适合文件物理位置的路径上下文中调用它。 .htaccess 在这种情况下不会帮助你。这是因为它是在服务器端执行的,而不是客户端。 【参考方案1】:

timthumb 寻找路径,你打开并查看过编辑 php 吗?

更改目录后我还必须自定义 timthumb...我会寻找我的代码。

timthumb 在服务器端执行时拉取实际路径。

.htaccess 用于通过网络浏览器从外部提取图像。

您的文件实际上位于 /public_html/wp-content/uploads/yr/mo/xxxx.xxx

所以脚本试图解码一个不存在的位置。

您也许可以 ln(将图像文件夹软链接到上传文件夹服务器端)

这将使脚本无需修改即可正常运行。

【讨论】:

以上是关于带有 .htaccess 的 timthumb.php 友好 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何在 htaccess 中使用带有 AuthUserFile 的相对路径?

带有 htaccess 的 CakePHP 子域

带有 php 和 .htaccess 的漂亮 url

带有 Angularjs/.htaccess 的漂亮 url

删除带有.htaccess和MultiViews的文件扩展名

带有 .htaccess 的 timthumb.php 友好 URL