Помогите написать правило

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

  1. frosha

    frosha Постоялец

    Регистр.:
    9 окт 2007
    Сообщения:
    83
    Симпатии:
    4
  2. konoplya

    konoplya Постоялец

    Регистр.:
    3 авг 2008
    Сообщения:
    88
    Симпатии:
    16
    если не углубляться, то как-то так:



    RewriteEngine on
    RewriteRule ^category([0-9]+)$ index\.php?cPath=$1



    оч простой пример, много чего не учитывающий ;)
     
    frosha нравится это.
  3. frosha

    frosha Постоялец

    Регистр.:
    9 окт 2007
    Сообщения:
    83
    Симпатии:
    4
    А как вообще сделать так, что бы на каждый выбранный мною адрес были свои уникальные ЧПУ? Ну вот, например:

    страница http://site.ru/index.php?cPath=31 отображается http://site.ru/second-hand.htm, а http://site.ru/index.php?cPath=31 http://site.ru/stock.htm и т.д.

    Я понимаю, что нужно будет писать правило для каждой страницы, но что поделать... И большая ли будет нагрузка на сервер?
     
  4. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    https://www.nulled.cc/showpost.php?p=1740780&postcount=1

    В этом посте написано как это сделано. Если страницы нету - она передаётся GET запросом на страницу обработки ЧПУ. Но сервер будет грузить "нормально" при большом количестве пользователей.
    UPD:
    Код:
    Rewritecond %{REQUEST_FILENAME} !-f
    
    Если файл отсутствует, выполняеться правило:
    Код:
    Rewriterule . index.php?99=%{REQUEST_URI} [L]
    
    . - под это правило подходят все URL-адреса, вместо запрошеной страницы выдаём страницу index.php?99=%{REQUEST_URI}, где %{REQUEST_URI} - запрошеная страница. Тоесть вместо site.ru/category/343 подставляем страницу site.ru/index.php?99=/category/343. Потом разбираем в файле index.php переменную 99 с GET запроса и формируем нужную страницу.
     
    frosha нравится это.