Элементарная задачка для гуру ЧПУ :)

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Jake Foley, 23 дек 2012.

  1. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    839
    Симпатии:
    366
    Здравствуйте,
    Пытался... пытался, так и не разобрался.

    Есть URL типа site.com/consulting/search.php?19
    Нужно чтоб было site.com/consulting/search/19
     
  2. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    site.com/consulting/search.php?19 - это урл с ЧПУ или реальный путь до папки?

    Если второе - в папку site.com/consulting/ кидаешь:

    Код:
    RewriteRule ^/([0-9]+) /search.php?$1
    В телории
     
  3. Alex.Volk

    Alex.Volk Охотник

    Регистр.:
    16 мар 2012
    Сообщения:
    371
    Симпатии:
    1.021
    Код:
    RedirectMatch ^/consulting/search.php?([0-9]*)$ http://site.com/consulting/search/$1
    или

    Код:
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/constulting/search\.php$
    RewriteCond %{QUERY_STRING} ^([0-9]*)$
    RewriteRule ^(.*)$ http://site.com/consulting/search/%1 [R=302,L]
     
  4. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    839
    Симпатии:
    366
  5. Горбушка

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

    Регистр.:
    2 май 2008
    Сообщения:
    3.175
    Симпатии:
    2.195
    Хех, я ж сказал в каком прописывать =) Если надо для корневого, тогда так:

    Код:
    RewriteRule ^/consulting/([0-9]+) /consulting/search.php?$1
     
  6. Jake Foley

    Jake Foley

    Регистр.:
    14 дек 2006
    Сообщения:
    839
    Симпатии:
    366
    Я пробывал и так и так добавляя consulting

    Всеравно не работает

    htaccess самого сайта - SimplaCMS
    Код:
    AddDefaultCharset UTF-8
    ErrorDocument 404 /404
    ErrorDocument 401 /password.php
    RewriteEngine on
    
    # Админка теперь по адресу /simpla
    RewriteRule ^admin/?$ simpla [L]
    
    # Каталог товаров
    RewriteRule ^catalog/([^/]+)/?$ index.php?module=ProductsView&category=$1 [L,QSA]
    RewriteRule ^catalog/([^/]+)/([^/]+)/?$ index.php?module=ProductsView&category=$1&brand=$2 [L,QSA]
    
    RewriteRule ^products/([^/]+)/?$ index.php?module=ProductView&product_url=$1 [L,QSA]
    RewriteRule ^products/?$ index.php?module=ProductsView [L,QSA]
    
    RewriteRule ^brands/([^/]+)/?$ index.php?module=ProductsView&brand=$1 [L,QSA]
    RewriteRule ^brands/([^/]+)/page_([^/]+)/?$ index.php?module=ProductsView&brand=$1&page=$2 [L,QSA]
    
    # Поиск товаров
    RewriteRule ^search/([^/]+)/?$ index.php?module=ProductsView&keyword=$1 [L,QSA]
    RewriteRule ^search/?$ index.php?module=ProductsView [L,QSA]
    
    redirect permanent /blog/Два_типа_антифриза__G11_и_G12_Чем_они_принципиально_различаются_между_собой Перейти по ссылке
    redirect permanent /news/ Перейти по ссылке
    redirect permanent /articles/ Перейти по ссылке
    redirect permanent /sections/ Перейти по ссылке
    redirect permanent /forum/ Перейти по ссылке
    
    # Блог
    RewriteRule ^blog/([^/]+)/?$ index.php?module=BlogView&url=$1 [L,QSA]
    RewriteRule ^blog/?$ index.php?module=BlogView [L,QSA]
    
    # Корзина и заказы
    RewriteRule ^cart/?$ index.php?module=CartView [L,QSA]
    RewriteRule ^cart/([^/]+)/?$ index.php?module=CartView&add_variant=$1 [L,QSA]
    RewriteRule ^cart/remove/([^/]+)/?$ index.php?module=CartView&delete_variant=$1 [L,QSA]
    RewriteRule ^order/([^/]+)/?$ index.php?module=OrderView&url=$1 [L,QSA]
    RewriteRule ^order/?$ index.php?module=OrderView [L,QSA]
    
    # Для пользователей
    RewriteRule ^user/login/?$ index.php?module=LoginView [L,QSA]
    RewriteRule ^user/register/?$ index.php?module=RegisterView [L,QSA]
    RewriteRule ^user/logout/?$ index.php?module=LoginView&action=logout [L,QSA]
    RewriteRule ^user/password_remind/?$ index.php?module=LoginView&action=password_remind [L,QSA]
    RewriteRule ^user/password_remind/([0-9a-z]+)/?$ index.php?module=LoginView&action=password_remind&code=$1 [L,QSA]
    RewriteRule ^user/?$ index.php?module=UserView [L,QSA]
    
    # Google sitemap
    RewriteRule ^sitemap.xml?$ sitemap.php [L,QSA]
    
    # XML
    RewriteRule ^yandex.xml?$ yandex.php [L,QSA]
    
    # feedback
    RewriteRule ^contact/?$ index.php?module=FeedbackView [L,QSA]
    
    #downloads
    RewriteRule ^order/([^/]+)/([^/]+)/?$ index.php?module=OrderView&url=$1&file=$2 [L,QSA]
    
    
    # Статические страницы
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]*)/?$ index.php?module=PageView&page_url=$1 [L,QSA]
    RewriteRule ^/?$ index.php?module=MainView&page_url= [L,QSA]
    
    # Ресайз картинок на лету
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^files/products/(.+) resize/resize.php?file=$1&token=%{QUERY_STRING}
    #RewriteCond %{THE_REQUEST} ^GET\ (.*)files/products/(.*)\?([A-z0-9]*) 
    #RewriteRule ^files/products/(.+) resize/resize.php?file=%2&token=%3 [L,NE]


    2е на работает,
    а первое: RedirectMatch ^/consulting/search.php?([0-9]*)$ Перейти по ссылке
    редиректит search.php?15 на Перейти по ссылке?15 и показывает 404.