Помощь по правилу

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем hoodenkiy, 2 мар 2011.

  1. hoodenkiy

    hoodenkiy Постоялец

    Регистр.:
    7 июн 2007
    Сообщения:
    62
    Симпатии:
    8
    Добрый день

    Задача:
    _http://site.com.ua/?p=viewpage&id=4

    Превратить в
    _http://site.com.ua/viewpage/46.htm

    А в идеале:
    _http://site.com.ua/dveri.html



    Если не лень обясните по шагам
    Спасибо
     
  2. citrus

    citrus Постоялец

    Регистр.:
    5 ноя 2006
    Сообщения:
    58
    Симпатии:
    8
    Запиши в .htaccess в корне домена такое:

    RewriteEngine On
    RewriteRule ^dveri.html$ ?p=viewpage&id=4 [L]

    Теперь у тебя будет работать страница _http://site.com.ua/dveri.html
     
  3. hoodenkiy

    hoodenkiy Постоялец

    Регистр.:
    7 июн 2007
    Сообщения:
    62
    Симпатии:
    8
    Спасибо а ридирект 301 нужно ставить со старой на новую, или можно это в правиле написать?

    спасибо
     
  4. citrus

    citrus Постоялец

    Регистр.:
    5 ноя 2006
    Сообщения:
    58
    Симпатии:
    8
    так у тебя задача сделать редирект ?
     
  5. hoodenkiy

    hoodenkiy Постоялец

    Регистр.:
    7 июн 2007
    Сообщения:
    62
    Симпатии:
    8

    Скажите а можно расшивровать, если я правильно понимаю то:
    RewriteRule ^dveri.html$ ?p=viewpage&id=4 [L]

    ^ - значит что результат "dveri.html" идет после корня домена
    $ - Это конец правила?
    ?p=viewpage&id=4 - этот адрес по сути заменяется вот этим:dveri.html
    [L] - И что значит вот это?

    Итак
    RewriteRule ^dveri.html$ - результат?
    ?p=viewpage&id=4 [L] - условие?

    Спасибо
     
  6. citrus

    citrus Постоялец

    Регистр.:
    5 ноя 2006
    Сообщения:
    58
    Симпатии:
    8
    RewriteRule ^dveri.html$ ?p=viewpage&id=4 [L]

    ^ - означает начало строки
    $ - означает конец строки
    [L] - один из флагов, от слова Last, он обозначает последнее правило для данного преобразования

    Не так, ^dveri.html$ - это условие.
    Получается так, при запросе /dveri.html (условие) выдается содержимое /?p=viewpage&id=4 (результат) , а флаг L говорит, что больше для этого правила нету условий и преобразований, грубо говоря, более ничего к dveri.html не относится :)