Кто поможет с mod_rewrite

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем finogeev, 1 июн 2007.

Статус темы:
Закрыта.
  1. finogeev

    finogeev Прохожие

    народ кто может подскзать или подробно объяснить как работать с mod_rewrite ?

    С настройкой .htaccess всё понятно ...
    Мне не понятно, что я должен делать в файле на который перенаправляю страницу ...

    Как она распознает виртуальную ссылку ... ?
     
  2. pk2002

    pk2002

    Регистр.:
    14 ноя 2006
    Сообщения:
    382
    Симпатии:
    350
    Ну допустим у тебя перенаправление такого вида
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

    Тогда в файлике index.php анализируем значение $_GET["q"] и выполняем соответствующие действия, выдаем нужный контент

    Советую почитать цикл статей на тему mod_rewrite

    http://www.internet-technologies.ru/articles/article_182.html
    http://www.internet-technologies.ru/articles/article_183.html
    http://www.internet-technologies.ru/articles/article_184.html
    http://www.internet-technologies.ru/articles/article_185.html
     
    esculap07 нравится это.
  3. finogeev

    finogeev Прохожие

    Сапсибо pk2002 !!!
    А то я уже бьюсь с ним неделю ...
     
  4. sw0rdf1sh

    sw0rdf1sh Создатель

    Регистр.:
    2 апр 2007
    Сообщения:
    41
    Симпатии:
    7
    вот пример может пригодится

    .htaccess
    Код:
    RewriteEngine on
    RewriteBase /
    
    RewriteRule ^music/([0-9]*)/$ index_.php?pageID=artist&artistID=$1
    
    PHP:
    <?php
    if (isset($_GET['pageID'])) {
        
    $pageID $_GET['pageID'];

        switch (
    $pageID) {
            case 
    'artist':    
                include(
    $homepath.'include/sub/artist.php');
                break;
            case 
    '404':    
                
    header("HTTP/1.0 404 Not Found");
                break;
            default: 
                
    header("HTTP/1.0 404 Not Found");
                break;
        }
    }
    ?>
    человек заходит на somehost.com/music/00432/

    00432 - это id какого то поля в базе например, по нему собирается вся страница, если вводится pageID который не описан, то просто показывается ошибка 404
     
  5. type-v

    type-v Прохожие

    Вот еще шпаргалка хорошая по mod_rewritehttp://www.ilovejackdaniels.com/mod_rewrite_cheat_sheet.png
     
  6. finogeev

    finogeev Прохожие

    Т.е. если мне надо отталкиваться от корня и делать папки не только цифровые но и буквеные я вот так пишу

    RewriteEngine on
    RewriteBase /

    RewriteRule ^([A-Za-z0-9]*)/$ index_.php?pageID=$page
     
  7. type-v

    type-v Прохожие

    В шпаргалке, что я привел смотри третий пример. Я так понял тебе нужно ЧПУ ?
     
  8. finogeev

    finogeev Прохожие

    Да имеено ЧПУ ....

    RewriteRule ^([A-Za-z0-9]*)/$ index_.php?pageID=$page

    Одно только не могу понять ...
    Как я обрабатывю перемнную $page, точнее подставляю её ???

    Если пишу сразу (для проверки)
    RewriteRule ^([A-Za-z0-9]*)/$ index_.php?pageID=page
    То урл работает, если через перемеенную то нет ...

    как я должен присвоить значение $page
     
  9. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    вместо $page пропиши в правиле $1
     
  10. finogeev

    finogeev Прохожие

    ВСЕМ БОЛЬШОЕ СПАСИБО !!!
    ВСЕ РАБОТАЕТ И РАЗОБРАЛСЯ!!!
     
Статус темы:
Закрыта.