Проблема с mod_rewrite и индексом

Discussion in 'PHP' started by blaga, 3 Jul 2008.

  1. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Доброго времени суток, форумчане!

    Я тут делаю скрипт и столкнулся с такой проблемой. У меня не хочет отображаться index.php
    Сейчас поясню ситуацию.
    Мне нужны ссылки вот такого вида
    сайт.ру/articles/ - главная страница модуля статей. Тут нужно заметить что articles - реальная папка
    сайт.ру/articles/название_категории - будет выводиться статьи в опр. категории


    В .htaccess такой код
    Code:
    RewriteEngine On
    RewriteRule ^/([a-z]+)?$ articles.php?cat=$1 //вот тут получаеться должна выводиться категория
    
    И тут я думаю что символ + здесь означает один или более раз то есть сайт.ру/articles/название_категории или сайт.ру/articles/н или сайт.ру/articles/назван
    Так вот а по адресу сайт.ру/articles/ должна грузиться index.php
    Но такого почему то нету.
    Работаю на Денвере.
    Заранее - Спасибо!
     
    #1 blaga, 3 Jul 2008
    Last edited: 3 Jul 2008
  2. 5triker

    5triker Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    62
    Likes Received:
    41
    Reputations:
    1
    /([a-z]+)?$ articles.php?cat=$1 /
    помойму $ тут лишний
     
    #2 5triker, 3 Jul 2008
    Last edited: 3 Jul 2008
    1 person likes this.
  3. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    5triker
    Ничего не лишний

    blaga
    Попробуй так

    Обоати внимание, что при использовании
    Адресс долджен быть вида
    http://site.com/news

    а при
    Адресс долджен быть вида
    http://site.com/news/
     
    #3 Naydav, 3 Jul 2008
    Last edited: 3 Jul 2008
    2 people like this.
  4. zythar

    zythar Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    хотелось бы посоветовать ТС также прочитать вот это: http://www.opennet.ru/docs/RUS/mod_rewrite/.
     
    1 person likes this.
  5. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    5triker, $ не лишний. (хотя, если честно я не знаю нафига он.)
    Naydav, на то что ты обращал мое внимание, я знал. А вот по поводу примера есть пара замечаний. во-первых в твоем примере обработаеться только одно правило потому что у тебя после первой строки идет флаг [L](он означает что это мол последнее правило), а во-вторых ты предлагаешь жестко привязать это к реальной папке articles а .htsccess придется класть в корень сайта что не допустимо в моем случае...
    zythar, я вообще то когда то смотрел эту статью, но там много лишнего и переведена она не очень хорошо. Сложно понять. :(
    Но вообще всем спасибо за попытки помочь. Тут вдруг в голову пришла мысль как сделать. Получилось так
    Code:
    RewriteEngine On
    RewriteRule ^([^a-z])?$ index.php
    RewriteRule ^([a-z]+)?$ articles.php?cat=$1 [L]
    
    то есть добавилось новое правило вначало если никаких символов от a-z то индекс. если они есть то статьи.
     
  6. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    ^ - начало строки
    $ - конец строки

    Я зная, я специально его и поставил!!!
    Если в адресной строке site.ru/articles/, то выводим индекс, и дальнейшие правила не считываем

    Какой реальной папке, да все равно есть она к тебя физически папка эта или нет
    Это означает, если в адрессной строке есть запрос
    site.ru/antichat/, то вызываем скрипт ndex.php, и все остальные правила не обрабатываем
    А физически ее может и не быть, папки эитой
     
    #6 Naydav, 3 Jul 2008
    Last edited: 3 Jul 2008
  7. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Naydav, ну вот, сенк. Теперь буду знать.
     
    1 person likes this.
  8. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Прочти выше

    Вот тебе пример

    _http://www.motosale.com.ua/aprilia/
    _http://www.motosale.com.ua/kawasaki/
    Ты что реально думаешь, что есть папки aprilia и kawasaki?
    Нет конечно, вот строка, что их (ссылки) обрабатывает
     
    #8 Naydav, 3 Jul 2008
    Last edited: 3 Jul 2008
  9. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Naydav, но у меня то это реальная папка! там не нужно делать никаких подстановок и замен.
     
  10. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Аааа...
    Понятно, тогда .htaccess в папку articles

     
  11. blaga

    blaga Elder - Старейшина

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Naydav, проблема уже решена. )