За последние 24 часа нас посетили 19692 программиста и 1696 роботов. Сейчас ищут 1758 программистов ...

Задачка по mod rewrite

Тема в разделе "Регулярные выражения", создана пользователем Delfi, 28 апр 2009.

  1. Delfi

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

    С нами с:
    28 апр 2009
    Сообщения:
    6
    Симпатии:
    0
    Всем доброе время суток

    Вопрос такой.
    Есть уже готовый сайт. Сформированы ссылки
    http://www.site.ru/begin.php
    http://www.site.ru/begin.php?looks
    http://www.site.ru/begin.php?po
    http://www.site.ru/begin.php?looks#1
    Как мне автоматом сделать такие преобразования
    Из http://www.site.ru/begin.php в http://www.site.ru/begin
    Из http://www.site.ru/begin.php?looks в http://www.site.ru/begin/looks
    Из http://www.site.ru/begin.php?looks#1 в http://www.site.ru/begin/looks#1
    Собственно сделатьвручную для каждого вида ссылок это могу, но реально ли сделать это автоматически?
    В целом есть главные разделы сайта, они раскиданы по отдельным файлам "*.php"
    Затем в этих разделах есть подразделы вида "*.php/подраздел"
    И есть якори в этих подразделах "*.php/подраздел#якорь"
    Так же возможны двухуровневые подразделы вида "*.php/подраздел/подразделподраздела"
    Реально ли это записать в одно/несколько правил, нежели прописывать для каждой ссылки?
    Ссылки на мануалы не надо кидать. Я указал конкретные случаи, для которых и нужно составить универсальные правила.
    Повторяю, сайт уже написан и структуру менять - не разумно. Но использовать modrewrite нужен
     
  2. Roker

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

    С нами с:
    10 апр 2007
    Сообщения:
    54
    Симпатии:
    0
    Я так понял надо заменить .php? на /
    А потом провсти замену .php на / для ссылок которые без ?

    В любом блокноте есть функция поиска и замены
     
  3. Delfi

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

    С нами с:
    28 апр 2009
    Сообщения:
    6
    Симпатии:
    0
    Ну .php? на / не обязательно, только в случае если есть переменная после нее.
    Попробую обьяснить легче.

    Нужно чтобы была как система каталогов.
    Убрать везде расширение файлов надо.
    В случае, если будет задана переменная после этого расширения, скажем ?looks, чтобы знак вопроса менялся на /
    И желательно проделать так с якорем, т.е. # менять на /
    Только вот слышал, что php с якорем не дружит, в принципе это не так важно последнее....
     
  4. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    что-то типа такого

    Код (Text):
    1. ^(.+)/.+ $1.php [L, QSA]
    т.е. из ссылки типа /users/pass_rec/error_2

    выдергиваем users - имя файла, читаем это + php. А там остальные параметры доступны обычным способом.


    либо вообще все скридывать на один скрипт, а там парсить REQUEST_URI