как сдклать ЧПУ в .htaccess

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем SPoX, 4 янв 2016.

  1. SPoX

    SPoX

    Регистр.:
    19 апр 2014
    Сообщения:
    180
    Симпатии:
    24
    здравствуйте друзья
    с новым годом

    у меня есть такая ситуация
    есть ссылка http://mysite.ru/modules/page/booker.php
    в .htaccess как сделать так чтобы ЧПУ обрабатывалось как http://mysite.ru/booker.html

    всем заранее спасибо
     
  2. mSnus

    mSnus Создатель

    Регистр.:
    4 дек 2015
    Сообщения:
    35
    Симпатии:
    5
    Как я понимаю, нужно что-то такое?

    Код:
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_URI} !admin
    RewriteRule ([^\.]+)\.html /modules/page/$1.php [L]
    
    Здесь любые ссылки, не содержащие слова admin (чтобы доступ к админке остался по нормальным URL) редиректятся на такие же адреса в /modules/page/<текст ссылки до .html>.php
    Со слешами в начале ссылок возможно придётся поэкспериментировать.
     
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    В варианте ТС просто:
    Код:
    RewriteRule booker.html /modules/page/booker.php [L]
    Регулярки и прочее может нарушить работу остального скрипта...
     
  4. paul_rem

    paul_rem

    Регистр.:
    29 июл 2009
    Сообщения:
    357
    Симпатии:
    25
    Доброй ночи. Чтобы не плодить темы, хотел воспользоваться моментом и спросить про свою ситуацию.
    У меня есть сайт, который много лет назад работал вот по такому адресу http://blabla.ru/wiki/index.php/Теория но так случилось, что пришлось с пару лет назад внести изменения в структуру и адрес изменился на http://blabla.ru/wiki2/index.php/Теория за два года на сайт появилось много обратных ссылок с форумов и ссылок больше чем за прошлые годы, когда была структура первого вида. Решил сделать редирект старых адресов на новые, как это сделать? надо всего лишь wiki менять на wiki2
     
  5. mSnus

    mSnus Создатель

    Регистр.:
    4 дек 2015
    Сообщения:
    35
    Симпатии:
    5
    Да всё так же:
    http://httpd.apache.org/docs/2.4/rewrite/remapping.html

    Код:
    RewriteEngine  on
    RewriteRule    "^/wiki/(.*)$"  "/wiki2/$1"  [R]
    или
    Код:
    RedirectMatch "^/wiki/(.*)" "/wiki2/$1"
     
    paul_rem нравится это.
  6. SuperRomario

    SuperRomario Постоялец

    Регистр.:
    1 дек 2013
    Сообщения:
    52
    Симпатии:
    4
    Все привет.
    Подскажите как правильно настроить ЧПУ в .htaccess для ссылок с кириллицей и пробелами?
    Есть интернет-магазин на движке ocStore 1.5.5.1.2 и страницы, которые генерирует фильтр вида
    Код:
    http://site.com/guitars/?mfp=48-gitary-dlya-levshi[Гитары для левши]
    Хочется, чтоб эта страница открывалась по адресу
    Код:
    http://site.com/guitars/left-hand.html
    в .htaccess у меня сейчас прописано так:
    Код:
    RewriteRule ^left-hand\.html$ "guitars/?mfp=48-gitary-dlya-levshi[Гитары для левши]" [NE,L]
    При заходе на страницу http://site.com/guitars/left-hand.html перебрасывает на http://site.com/guitars/?mfp= и соответственно фильтр не применяется.
    Я так подозреваю, что проблема как раз в кириллице, т.к. еще одна строка
    Код:
    RewriteRule ^explo\.html$ guitars/?mfp=10-forma-korpusa[Explorer] [L]
    при заходе на http://site.com/explo.html открывается страница http://site.com/guitars/?mfp=10-forma-korpusa[Explorer]
    Но мне все же хотелось бы еще, чтоб в адресной строке так и оставался ЧПУ вида http://site.com/explo.html
     
  7. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    В .htaccess надо вписывать именно URL - он всегда на английском. В кирилицу его переводит уже браузер.
    В php за это отвечает urlencode();

    К примеру "абв" должно быть записано как "%D0%B0%D0%B1%D0%B2"

    P.s. насколько я помню, могу ошибаться
     
  8. SuperRomario

    SuperRomario Постоялец

    Регистр.:
    1 дек 2013
    Сообщения:
    52
    Симпатии:
    4
    Пробовал и в таком виде, все равно та же " петрушка" получается. На выходе ?mfp= и все.
     
  9. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    217
    Симпатии:
    281
  10. SuperRomario

    SuperRomario Постоялец

    Регистр.:
    1 дек 2013
    Сообщения:
    52
    Симпатии:
    4
    Но мне и надо, чтоб адрес был http://site.com/left-hand.html (видимо опечатался в посте, когда писал), это проблемы не решает, ведь с адресом http://site.com/explo.html все нормально. Там нет кириллицы.