Рефрайты субпапок...

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

Статус темы:
Закрыта.
  1. Makc79

    Makc79 Прохожие

  2. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Эммм. Определитесь куда Вам надо реврайт прописать. Как-то не до конца понятно следующее
    Код:
    catalog/announe/index?id=$1
    
    Кинь кусок htacces где разбирается правило
    http://www.site.ru/catalog/announce/?id=50
    З.Ы. При верном пути до скрипта и правильном указании должно работать
    RewriteRule ^catalog/announce-([a-z0-9]+)(/?)(.+)$
     
  3. Makc79

    Makc79 Прохожие

  4. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    нет, покажи сюда свой htaccess! так ответ быстрее будет
     
  5. Makc79

    Makc79 Прохожие

    Вот
    Код:
    ErrorDocument 404 http://balearskie.ru/?error=404
    order allow,deny
    deny from 65.66.3.12
    allow from all
    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/robots\.txt$
    RewriteCond %{HTTP_HOST} !^www\.balearskie\.ru$ [NC]
    RewriteRule ^(.*)$ http://www.balearskie.ru/$1 [R=301,L] 
    RewriteRule ^catalog/announce-([a-z0-9]+)(/?)(.+)$  catalog/announce/index?id=$1 [L]
    AddDefaultCharset UTF-8
     
  6. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Держи
    Код:
    RewriteRule ^catalog/announce-([a-z0-9]+)/?.*$ /catalog/announce/?id=$1 [L]
    У тебя есть небольшая помарочка в реврайте. Смотри, попытаюсь объяснить
    Код:
    ^catalog/announce-([a-z0-9]+)(/?)(.+)$
    1. catalog/announce- понятно
    2. [a-z0-9]+ минимум один цифробуквенный знак (ВНИМАНИЕ)
    3. /? может быть слеш, а может и не быть.
    4. .+ минимум один любой символ! (ВНИМАНИЕ).
    Таким образом: корректно обработались бы
    catalog/announce-10/0
    catalog/announce-10/asda и иже с ними.
    НО!
    catalog/announce-10 обработался бы как
    id=1, а ноль ушел бы в маску (.+)
    catalog/announce-1 и catalog/announce-10/ вообще не обработался бы, т.к. не соответствует маске.
    После точки надо ставить квантификатор не +, a *
    Надеюсь, что помог и все заработает
     
  7. Makc79

    Makc79 Прохожие

    antidote, ты гений! всё заработало, спасибо большое. :)
     
Статус темы:
Закрыта.