![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| linuxoid |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 17.4.2005 Репутация: нет Всего: нет |
Здравствуйте друзья! У меня следующий вопрос, с которым я пока не могу разобраться:
Допустим я сделаю кнопку с таким линком. Когда пользователь нажмет её, на экране в URL'e он увидит линк:
А подмена должна быть на этот линк:
Т.е. - "ru" говорит нам, что в конце реального линка будет "language=ru" - по "produkcija" мы получаем item=126 (название раздела) - по "nazvanie_sekcii" получаем "section_id=39" - а "parent_sekcija" в данном случае нужна была для более подробной информации в читабельном url'e и роли в воссоздании реального url'a не играет. Т.е. я всегда знаю, что за 1м slash'ом идет язык (ru, en), за вторым идет название раздела(, далее, если это раздел продукции, то идет название продукта первого уровня, второго уровня и т.д. в зависимости от кол-ва вложенных секций..., но всегда нужно смотреть только за последним slash'om, т.к. интересует только последний продукт, который даст section_id по "nazvanie_sekcii") Как это сделать с помощью mod_rewrite??? Я нашел, как поменить к примеру page=example на page/example, но в данном случае еще нужно выбрать язык и использовать значения нескольких переменных через &. P.S. У меня практически нулевой опыт в таких делах..., поэтому буду крайне признателен за подсказаньки. Это сообщение отредактировал(а) linuxoid - 16.4.2010, 14:35 |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
вопросы по mod_rewrite спрашивают в администрировании серверов. здесь всё-таки пхп
но я лично не думаю, что нужен именно mod_rewrite разбирательство. почему это не сделать на пхп? редиректим всегда на index.php, а в нём уже разбираем как душе угодно
вот весь путь в массиве по частям. $arr[0] - это язык, $arr[count($arr) - 1] - последний продукт |
|||
|
||||
| linuxoid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 17.4.2005 Репутация: нет Всего: нет |
Спасибо! Попробую так!
|
|||
|
||||
| capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: 9 Всего: 13 |
bars80080, Не совсем правильное решение редиректить все на index.php Возникнут проблемы с seo, т.к. на любой урл будет получен 301 редирект. И потом как таким образом обрабатывать POST запросы?
Это сообщение отредактировал(а) capitan - 20.4.2010, 18:07 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
capitan, хоть mod_rewrite и умеет делать редиректы([R=301] после правила), но в данном случае, я уверен, bars80080 просто некорректно назвал подмену "редиректом".
linuxoid, у тебя вариантов немного. и лучшего, чем предлагает bars80080 я тоже не могу предложить. потому что mod_rewrite работает с запрошенным URI как с текстом. потому сделать подмену с
на получится, только если явно прописать правило для секции "nazvanie_sekcii". и для всех остальных секций - тоже прописать явно правила в .htaccess а вот если все адреса будут вызывать index.php, в котором уже может происходить обращение к БД, для выяснения, что за id у секции с заданным названием, то все будет намного проще и короче. |
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
да. в консерваториях не учился, терминологии не обучен. однако, всё работает корректно, без 301 редиректов (кроме специальных, именно для seo. к примеру, чтоб редиректило 301 с server.ru/some на server.ru/some/ ) и все POST-данные тоже корректно обрабатываются собственно, вот он:
в корневике, и всё |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
до сих пор различий не делал. точнее не пользовался выражением "подмена урл"
в интернете распространено множество статьей с текстами "как сделать то-то или то-то". но практически нет базовых принципов, академического знания, как в учебнике. а если есть, то на английском, в коем скрадываются все нюансы в одну серую массу |
|||
|
||||
| linuxoid |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 17.4.2005 Репутация: нет Всего: нет |
Спасибо коллеги. bars80080 дал мне отличный совет. Все работает, как я и хотел... в mod_rewrite'e я прописал, чтобы все линки по типу
|
||||||||
|
|||||||||
| capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: 9 Всего: 13 |
А кто-нибудь пробовал такой вариант?
http://www.shtogrin.com/library/web/mod_re...oc/RewriteRule/
Просто интересен опыт. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |