Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
запрос вида www.site.ru/p111 |
|
Опции темы |
09.12.2008, 21:51 | #1 |
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 39
Не в сети |
запрос вида www.site.ru/p111
Интересует, как на многих сайтах организуется обработка урл-ов вида w ww.site.ru/p111 ?
(Например на ВКонтакте, где /id12345) и прочее? Что для этого вообще нужно? Какие технологии должны присутствовать на хостинге и какие скрипты нужно писать? |
09.12.2008, 22:13 | #2 | |
xxCENSOREDxx
Сообщений: 983
Регистрация: 09.04.2006
Возраст: 44
Не в сети |
Цитата:
для сайта из двух-трёх страниц достаточно создать папку id12345 и в неё положить index.html =) если программирование будет на php, perl, то, скорее всего, сервер на хостинге будет apache, для него есть модуль url-преобразований (поищите в гугле по запросу mod_rewrite) для classic asp и .net сервер будет iis, тогда для iis 7.0 есть родной модуль, для ранних версий неплохой модуль isapi_rewrite далее возможны 2 варианта: — все запросы перенаправляются к одному файлу, тогда получаем строку запроса, разбираем её и выводим нужную инфу — запросы превращаются в get-запросы с параметрами к разным файлам, тогда обрабатываем get-запрос как обычно |
|
09.12.2008, 22:16 | #3 |
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 39
Не в сети |
Да, не оговорил условия.
Работать всё должно на связке Apache + PHP4. Создать папки уже была мысль, но тогда при заходе на фтп глаза будут лезть на лоб (динамика развития сайта дойдёт до 10000 ссылок, в которых каждая должна ссылаться на свою страницу) |
09.12.2008, 22:18 | #4 | |
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 39
Не в сети |
Цитата:
А вот второй вариант более интересен. Можно по-подробнее, как именно можно перевести подобный урл в гет-запрос? |
|
09.12.2008, 22:24 | #5 | |
xxCENSOREDxx
Сообщений: 983
Регистрация: 09.04.2006
Возраст: 44
Не в сети |
Цитата:
как раз первый вариант интереснее, так как второй обычно применяют, когда нужно из готового сайта со страшными урлами превратить в сайт с чпу, не переписывая скрипты |
|
09.12.2008, 23:07 | #6 |
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 39
Не в сети |
Ладно, покурю эту тему. Спасибо за наставление :]
|
11.12.2008, 13:10 | #7 |
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 39
Не в сети |
Вкурил. Но появилась проблема, которую не могу решить.
При обращении по ссылке вида www.site.ru/001/page и правиле редиректа RewriteRule ^([0-9]+)/([a-zA-Z]+)$ ?i=$1&subp=$2 компьютер конечного пользователя пытается искать все картинки, css и js файлы в дериктории p001. Как этого избежать? Один из способов ясен - прописывать везде абсолютные пути. Но это слишком трудоёмко, тем более что имя домена ещё не известно. Как бы по-элегантнее обойти этот вопрос? RewriteBase / прописано - не помогает |
11.12.2008, 13:46 | #8 |
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 39
Не в сети |
Допёрло.
Прописал ниже правило RewriteRule ^([0-9]+)/(.*)$ /$2 |
11.12.2008, 14:11 | #9 | |
фотограф
Сообщений: 2,738
Регистрация: 20.10.2004
Не в сети |
Цитата:
|
|
19.01.2009, 16:57 | #10 |
ЯФ
Сообщений: 351
Регистрация: 27.01.2007
Возраст: 38
Не в сети |
1)Достаточно писать <img src=/img/myphoto.jpg> вместо <img src=img/myphoto.jpg>.
2)или абстоютные как сказали выше <img src=http://www.example.com/img/myphoto.jpg> что ИМХО не очень удобно. 3) либо правило в апач |
19.01.2009, 17:08 | #11 | |
фотограф
Сообщений: 2,738
Регистрация: 20.10.2004
Не в сети |
Цитата:
"/img/myphoto.jpg" - абсолютный путь. "img/myphoto.jpg", "../img/myphoto.jpg" - относительные пути. |
|
19.01.2009, 17:46 | #12 | |
ПараноЙик
Сообщений: 676
Регистрация: 15.08.2006
Не в сети |
Да не надо мудрить)
Цитата:
и у тебя будет один массив explode('/',$_GET['p']); Его разбираешь и что надо отображаешь. |
|
19.01.2009, 17:52 | #13 |
фотограф
Сообщений: 2,738
Регистрация: 20.10.2004
Не в сети |
Я бы сказал - что ваш пример - и есть мудрить. Зачем городить разбор всех запросов (небольшая но дополнительная ненужна нагрузка) - писать для этого скрипт, если достаточно просто прописать правильные пути еще при верстке?
|