【问题标题】:TimThumb works when path is relative, but not when absolute pathTimThumb 在路径是相对时有效,但在绝对路径时无效
【发布时间】:2012-05-20 09:43:45
【问题描述】:

你能帮忙吗?

基本上我从 ThemeForest 购买了 Centita 主题并将其安装在我的服务器上

我面临的主要问题是 TimThumb 使用绝对路径读取我的缩略图/图像:

http://ohmu.co.za/wp-content/themes/centita/timthumb.php?src=http://ohmu.co.za/wp-content/themes/centita/images/img-main1.jpg&h=90&w=66&zc=1

这会产生 500 错误。

经过调查,最后发现相对路径可行:

http://ohmu.co.za/wp-content/themes/centita/timthumb.php?src=/wp-content/themes/centita/images/img-main1.jpg&h=90&w=66&zc=1

所以我的问题如下:

我是否编辑主题以引用相对路径?我该怎么做呢?

或者我如何获得工作的绝对路径?


我使用 WordPress 的时间不长,但我通常擅长故障排除,直到我脸色发青,不过这个问题对我来说有点多。非常感谢您的帮助。


只是为了让您知道我已经尝试过什么,以免您提出建议:

我已将 .htaccess 更改为显示(这使我的网站无法显示,因此我将其删除)

SecFilterEngine Off
SecFilterScanPost Off

支持并启用 GD 库

TimThumb 是新的更新版本

chmods 全部更改为 777

【问题讨论】:

  • 第二个例子是绝对路径,第一个例子是URL。对于亲戚来说,它更像是../../dir/file.ext。该脚本无法在 URL 上运行,因为 timthumb.php 限制通过 URL 访问
  • 或者您可以将您的域添加到 timthumb.php 上的安全列表中

标签: php wordpress path relative-path absolute-path


【解决方案1】:

问题应该是主机引起的,因为有些主机不允许在URL中使用http://www

如果您要显示的图像在您的站点中,则无需使用绝对路径,因此您可以毫无问题地传递相对路径...

要使 url 相对,最简单的方法是从 PHP 代码中替换包含 URL 的字符串中的域名,您可以使用 str_replace 函数:

$url = str_replace(get_bloginfo('url'), '', $url);

注意 wordpress 中的函数get_bloginfo 应该获取网站的基本网址,否则您甚至可以使用硬编码版本(在您的情况下:http://ohmu.co.za

还可以查看 this 有用的文章,该文章很好地解释了如何在 Wordpress 中处理路径。

请记住,StackExchange 上有一个更专业的论坛,您可以在其中提出有关 Wordpress 的问题,即:Wordpress Answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 2015-09-20
    • 2015-11-13
    • 2011-11-25
    • 2022-01-08
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    相关资源
    最近更新 更多