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

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

  1. SPoX

    SPoX

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

    у меня есть такая ситуация
    есть ссылка Перейти по ссылке
    в .htaccess как сделать так чтобы ЧПУ обрабатывалось как Перейти по ссылке

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

    mSnus Создатель

    Регистр.:
    4 дек 2015
    Сообщения:
    32
    Симпатии:
    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.175
    Симпатии:
    2.195
    В варианте ТС просто:
    Код:
    RewriteRule booker.html /modules/page/booker.php [L]
    Регулярки и прочее может нарушить работу остального скрипта...
     
  4. paul_rem

    paul_rem

    Регистр.:
    29 июл 2009
    Сообщения:
    355
    Симпатии:
    23
    Доброй ночи. Чтобы не плодить темы, хотел воспользоваться моментом и спросить про свою ситуацию.
    У меня есть сайт, который много лет назад работал вот по такому адресу Перейти по ссылке за два года на сайт появилось много обратных ссылок с форумов и ссылок больше чем за прошлые годы, когда была структура первого вида. Решил сделать редирект старых адресов на новые, как это сделать? надо всего лишь wiki менять на wiki2
     
  5. mSnus

    mSnus Создатель

    Регистр.:
    4 дек 2015
    Сообщения:
    32
    Симпатии:
    5
    Да всё так же:
    Перейти по ссылке

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

    SuperRomario Постоялец

    Регистр.:
    1 дек 2013
    Сообщения:
    54
    Симпатии:
    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]
    При заходе на страницу Перейти по ссылке и соответственно фильтр не применяется.
    Я так подозреваю, что проблема как раз в кириллице, т.к. еще одна строка
    Код:
    RewriteRule ^explo\.html$ guitars/?mfp=10-forma-korpusa[Explorer] [L]
    при заходе на Перейти по ссылке[Explorer]
    Но мне все же хотелось бы еще, чтоб в адресной строке так и оставался ЧПУ вида Перейти по ссылке
     
  7. Горбушка

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

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

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

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

    SuperRomario Постоялец

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

    lag

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

    SuperRomario Постоялец

    Регистр.:
    1 дек 2013
    Сообщения:
    54
    Симпатии:
    4