помогите с .htaccess

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем главврач, 5 мар 2014.

  1. главврач

    главврач Постоялец

    Регистр.:
    11 фев 2009
    Сообщения:
    81
    Симпатии:
    12
    • Создание темы в несоответствующем разделе
    в htaccess нужно сделать замену адресов

    /prod/*** на /catalog/***
     
  2. MagicNoob

    MagicNoob Создатель

    Регистр.:
    27 фев 2014
    Сообщения:
    15
    Симпатии:
    3
    Как-то так:
    RewriteRule ^(.*)/prod/(.*)$ $1/scatalog/$2
     
  3. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    Или так:
    Код:
    RewriteCond %{REQUEST_URI} prod/.*
    RewriteRule prod/(.*) /catalog/$1 [R=301,L]
    
     
    главврач нравится это.
  4. MrJaaaaaack

    MrJaaaaaack Создатель

    Регистр.:
    18 июл 2013
    Сообщения:
    37
    Симпатии:
    4
    Самый примитив
    RewriteRule ^sub.domain.com/(.*)$ domain.com/$1
     
  5. MagicNoob

    MagicNoob Создатель

    Регистр.:
    27 фев 2014
    Сообщения:
    15
    Симпатии:
    3
    И куда же приведет запрос вот такого адреса:
    www.domain.com/prod/?id=123 ?
    Явно, не в www.domain.com/catalog/?id=123 :)
     
  6. MrJaaaaaack

    MrJaaaaaack Создатель

    Регистр.:
    18 июл 2013
    Сообщения:
    37
    Симпатии:
    4
  7. MagicNoob

    MagicNoob Создатель

    Регистр.:
    27 фев 2014
    Сообщения:
    15
    Симпатии:
    3
    Прежде чем ссылку давать, можно было бы и посмотреть, что в этом генераторе топикстартер не найдет ответа на свой вопрос.
     
  8. MrJaaaaaack

    MrJaaaaaack Создатель

    Регистр.:
    18 июл 2013
    Сообщения:
    37
    Симпатии:
    4
    301 там есть.

    А вообще, очень познавательная статья вот еще http://alaev.info/blog/post/4393

    Цитата
    Пример правил при смене структуры сайта


    RewriteRule ^post/category/(.*)$ blog/category/$1 [R=301,L]
    RewriteRule ^post/(.*)$ blog/post/$1 [R=301,L]
     
    Victim нравится это.
  9. mikefrost

    mikefrost Писатель

    Регистр.:
    6 сен 2011
    Сообщения:
    5
    Симпатии:
    1
    Я обычно делаю примерно так:

    Код:
    RewriteRule ^([А-Яа-яA-Za-z].+)/$ /index.php?act=$1
    А дальше в управляющем файле разбиваю переменную $act на массив, принимаю первую запись за скрипт, а дальше скрипт уже по своим правилам использует остальные элементы массива.

    Например, адрес
    mysite.com/blog/ — ведет на главную страницу скрипта, который отвечает за блог и лежит где-то в директориях под названием blog.php
    а конструкция mysite.com/blog/2014/03/first-entry/ — ведет к записи с линком 'first-entry' в базе данных, и обрабатывается это всё скриптом blog.php, игнорируя все элементы массива, кроме последнего.

    Ну дальше возможности упрутся только в фантазию разработчика
     
  10. badneko

    badneko Постоялец

    Регистр.:
    4 фев 2014
    Сообщения:
    55
    Симпатии:
    5
    на престашоп модуль престаблог добавляет реврайты
    Код:
    RewriteRule ^(.*)$ /index.php?fc=module&module=psblog&controller=posts [QSA,L] 
    RewriteRule ^(.*)/([0-9]+)\-([a-zA-Z0-9-]*) /index.php?fc=module&module=psblog&controller=posts&post=$2 [QSA,L] 
    RewriteRule ^(.*)/category/([0-9]+)\-([a-zA-Z0-9-]*) /index.php?fc=module&module=psblog&controller=posts&category=$2 [QSA,L] 
    сайт выпадает в 500 страницу и в логи пишет ошибку о цикличности
    mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.
    как победить проблему?
     
    Последнее редактирование модератором: 21 май 2014