Imagepath вроде / images / john работает, но на другом сервере нет - PullRequest
0 голосов
/ 09 февраля 2012

Я сделал перевод CMS с одного сервера на другой.На новом сервере изображение не найдено.Я посмотрел в коде HTML и увидел

<img src="/images/john" alt="john" />

Изображение не имеет расширения, как *.jpg.Но почему это работает на старом сервере?Это тот же код, та же база данных и тот же файл htaccess.Даже Internet Explorer может найти картинку.

За такое поведение отвечает конфигурация Apache или PHP?Я только хочу выяснить, почему.

1 Ответ

1 голос
/ 17 сентября 2012

Возможно ли, что MultiViews включен на старом сервере, но не на новом?MultiViews - это функция Apache, которая позволяет запрашивать файлы без добавления расширения (поэтому images/john может вернуть файл на images/john.jpg).Он предназначен (насколько мне известно), чтобы позволить вам иметь несколько версий одной и той же страницы, причем окончательная версия выбирается в зависимости от локали пользователя;браузер, запрашивающий index из Испании, может получить index.es.php, тогда как в Японии он может получить index.jp.php.Я никогда не использовал эту функцию сам, поэтому я не знаю, является ли это правильным использованием для обслуживания страниц, зависящих от локали, но я знаю, что у MultiViews есть побочный эффект обслуживания index.php в ответ на index.

Обратите внимание, что MultiViews управляется директивой Options, и это единственная такая опция, которая не включена в All.Таким образом, чтобы получить все опции, включая MultiViews, вам понадобится Options All MultiViews в вашем файле .htaccess.Это может включать или не включать MultiViews в зависимости от директивы Allow Override в конфигурации Apache для вашего каталога;если вы пользуетесь виртуальным хостингом, вы ничего не можете поделать, кроме как жаловаться (хотя они, как правило, позволяют всем переопределениям .htaccess избегать таких жалоб).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...