TimThumb работает, когда путь относительный, но не когда абсолютный путь

Пожалуйста, вы можете помочь?

По сути, я купил тему Centita на ThemeForest и установил ее на свой сервер.

Основная проблема, с которой я столкнулся, заключается в том, что 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


person RobB777    schedule 11.05.2012    source источник
comment
Второй пример — абсолютный путь, первый пример — URL. Для родственника это будет больше похоже на ../../dir/file.ext. Скрипт не будет работать с URL-адресом, поскольку timthumb.php ограничивает доступ через URL-адрес.   -  person Jamie Bicknell    schedule 11.05.2012
comment
Или вы можете добавить свой домен в безопасный список на timthumb.php.   -  person Jamie Bicknell    schedule 11.05.2012


Ответы (1)


Проблема должна быть вызвана хостом, потому что некоторые хосты не позволяют использовать http://www в URL-адресе.

Если изображение, которое вы хотите показать, находится на вашем сайте, нет необходимости использовать абсолютный путь, поэтому вы можете без проблем передать относительный путь...

Чтобы сделать URL-адрес относительным, самый простой способ — заменить доменное имя в строке, содержащей URL-адрес из кода PHP, вы можете использовать str_replace:

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

Обратите внимание, что функция get_bloginfo в wordpress должна получать базовый URL-адрес сайта, в противном случае вы даже можете использовать жестко закодированную версию (в вашем случае: http://ohmu.co.za )

Взгляните также на эту полезную статью, в которой хорошо объясняется, как обращаться с путями в Вордпресс .

Имейте в виду, что на StackExchange есть более специализированный форум, где вы можете задать вопрос о Wordpress, а именно: Ответ Wordpress.

person aleroot    schedule 11.05.2012