За последние 24 часа нас посетили 17911 программистов и 1619 роботов. Сейчас ищет 1261 программист ...

нужна подсказка про ЧПУ

Тема в разделе "Регулярные выражения", создана пользователем TigerZaka, 26 июн 2012.

  1. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    имеется адрес вида: site.ru/avtomat.php?id_parent=6
    как его преобразовать в site.ru/avm

    пробовал так:
    Код (Text):
    1. RewriteEngine On
    2. RewriteRule ^/avm/ avtomat?id_parent=6
    но реакции нет (, подскажите где ошибка?
    (mod_rewrite включен)
     
  2. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    не могу понять смысл. Разъясните конкретнее. У Вас во всех случаях должен он так преобразовывать или как?
     
  3. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    нет, не во всех. Я пока пытаюсь понять принцип. пробую поменять один url.
    но я буду рад за разъяснение принципа замены динамических урлов, например:
    Код (Text):
    1. site.ru/avtomat.php?id_parent=6 //преобразуем в site.ru/avm
    2. site.ru/avtomat.php?id_parent=7 //преобразуем в site.ru/dtp
    3. site.ru/avtomat.php?id_parent=30 //преобразуем в site.ru/kpr
    я не понимаю каким образом прописывается к каждому урлу - вручную или есть какой-то автоматизм?
     
  4. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Я туплю или никто не знает? ))
     
  5. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    Ничего не пойму, Вы хотите динамически менять урл? Это уже ajax.
     
  6. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    ну вот, про аякс я не знал )) (*пошел искать)
    нет кстати ссылочек полезных?
     
  7. Gambit

    Gambit Активный пользователь

    С нами с:
    4 июн 2012
    Сообщения:
    108
    Симпатии:
    0
    На ссылке ставите событие:

    <a href='index.php?mod=news' onClick=ajax_Link(event, this.value)>Новости</a>

    Код (Text):
    1. function ajax_Link(event, link) {
    2.     // берем имя страницы
    3.     var nameLink = link.innerHTML;
    4.     // изменить адресную строку
    5.     history.pushState({title:nameLink, href:link.href}, null, link.href);
    6.     // отменить событие (переход на др страницу)
    7.     event.preventDefault();
    8.     // обновляем контент
    9.     uploadContent(link.search);
    10. }
    Добавлено спустя 29 секунд:
    далее пилите функцию аплоада контента uploadContent()

    Добавлено спустя 2 минуты 7 секунд:
    Да, забыл вот еще добавьте.:

    Код (Text):
    1. // Если произошло событие браузера popstate (назад)
    2. window.addEventListener("popstate", function(e) {
    3.     // , то выполняем обновление ТОЛЬКО контента
    4.     uploadContent(e.state.href);
    5.     //history.previous;
    6.     // остальное оставить как есть
    7. }, false );
     
  8. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    спасибо, пошел разбираться )
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ему не аякс нужен, а регулярочка
    типа
    RewriteRule ^/avm/(.*)$ /avtomat?id_parent=$1
     
  10. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    во-во !! спасибо ))), вот только не реагирует, в чем может быть дело?
    вот написал я в .htaccess
    Код (Text):
    1. RewriteEngine On
    2. RewriteRule ^/avm/(.*)$ /avtomat?id_parent=$1
    проверил phpinfo() - в 'Loaded modules' присутствует mod_rewrite
    что еще может быть?
    Я кстати и тему завел, потому что пробовал регулярки, а они не работали
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    У вас апач? Без регулярок работает?

    Добавлено спустя 32 секунды:
    эм, а так:
    RewriteRule ^/avm/(.*)$ avtomat?id_parent=$1
     
  12. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    хм..так тоже не реагирует...
    сайт работает, все функционирует
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ам, я не правильно прочитал задание =)

    я думал ты хочешь так
    /avm/10 - перекидывать на avtomat?id_parent=10
    а в твоем случае придется ручками. хотя можно и так
    RewriteRule ^/(.*)$ /avtomat?id_parent=$1
    только в пхп скрипт пойдут именно строковые названия а не числа. уже внутри можно решить что делать.

    короче думай.
     
  14. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  15. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    вмес спасибо, буду разбираться ))