带有 .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 的相对路径?
带有 Angularjs/.htaccess 的漂亮 url