PHP в деталях



         

Комментарии к статье ""


21.1.2001 16:45  Cyrill Malevanov  []

Можно обойтись без mod_rewrite путем указания DocumentRoot .../.../.../index.php в настройках виртуального хоста.

А там уже можно и $REQUEST_URI разбирать.

Ответ DL:

Так это получается тот же ErrorDocument. Главная проблема ? жвижку надо слишком много компилировать, если все в одном месте лежит.

23.1.2001 18:34  Рауф  []

Как быть с относительными путями?

когда делаю hrc.ru/consulting - все работает, грузится, картинки ищутся в hrc.ru/pictures, но когда набираю hrc.ru/consulting/ (а так получается если я по ссылке перехожу), то все отрабатывается похожим образом, но пути у картинок и остального строятся относительно директории consulting, которой нету, так как у меня используется этот механизм виртуальных директорий (

Вообщем как обойти это -- не знаю. :(

Ответ DL:

Писать абсолютные пути. У меня ? та же проблема.

17.2.2001 16:42  Жека  []

>>Рауф

В Вашем случае действительно легче с абсолютом, но можете почитать дальше.

Я понял так: есть script "consulting._ext_", в нем ссылки на картинки имеют вид "pictures/имя_файла". Естественно броузеры при создании полного пути заменят текст после последнего слеша на относительный путь. Выход прост: ведите отсчет от /consulting/, т.е. "../pict_и_т_д", а в самом скрипте запретите обращение к нему без закрывающего слеша, либо добавьте в <HEAD> элемент <BASE> и измените "базу" страницы.

Наслаждайтесь жизнью, она того стоит.(афоризм)

Ответ DL:

Кстати, по-моему, можно при помощи mod_rewrite ОЧЕНЬ упростить работу с картинками. Наверняка кое-кто в сети (та же Лента.ру) догадались, что это можно делать, но молчат :)

RewriteRule pict/[^\\./]+\\.(gif|jpe?g|png)$ - [L]
RewriteRule ([^\\./]+)\\.(gif|jpe?g|png)$ /detail/pict/\$1.\$2 [L]

Дома проверил - работает, причем сервер не грузит (пока я не добавил в негативные классы слэш - картинки вообще не выдавались! и своп постепенно забивался).
Первая строка здесь нужна, чтобы не зациклить сервер (иначе он будет бесконечно переписывать "прямые" запросы к картинкам). Параметр "[L]" заставляет прекратить дальнейшие переписывания адресов. И не надо париться с "../../" :) Пути к файлам можно писать хоть какие ? только имена чтоб совпадали! Остается только выяснить, насколько это грузит сервер. Будут смельчаки? Если что-то проверите - пишите, опубликую результаты.

21.3.2001 17:04  David Mzareulyan  []

DL, а кто Вас заставляет всё это компилировать?:) all.php должен просто разобрать путь и понять, чего от него хотят. После этого делается include() того php-модуля, который отвечает за конкретный запрос и всё. Вовсе не обязательно всю функциональность упихивать в один скрипт.

Ответ DL:

С include просто структура кода сложнее.

<


Содержание  Назад  Вперед