Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Проблема с mod_rewrite и индексом |

03.07.2008, 15:50
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
Проблема с mod_rewrite и индексом
Доброго времени суток, форумчане!
Я тут делаю скрипт и столкнулся с такой проблемой. У меня не хочет отображаться index.php
Сейчас поясню ситуацию.
Мне нужны ссылки вот такого вида
сайт.ру/articles/ - главная страница модуля статей. Тут нужно заметить что articles - реальная папка
сайт.ру/articles/название_категории - будет выводиться статьи в опр. категории
В .htaccess такой код
Код:
RewriteEngine On
RewriteRule ^/([a-z]+)?$ articles.php?cat=$1 //вот тут получаеться должна выводиться категория
И тут я думаю что символ + здесь означает один или более раз то есть сайт.ру/articles/название_категории или с айт.ру/articles/н или с айт.ру/articles/назван
Так вот а по адресу сайт.ру/articles/ должна грузиться index.php
Но такого почему то нету.
Работаю на Денвере.
Заранее - Спасибо!
Последний раз редактировалось blaga; 03.07.2008 в 18:53..
|
|
|

03.07.2008, 16:06
|
|
Участник форума
Регистрация: 05.04.2007
Сообщений: 150
Провел на форуме: 771228
Репутация:
77
|
|
/([a-z]+)?$ articles.php?cat=$1 /
помойму $ тут лишний
Последний раз редактировалось 5triker; 03.07.2008 в 16:11..
|
|
|

03.07.2008, 16:33
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
5triker
Ничего не лишний
blaga
Попробуй так
RewriteRule ^articles/?$ index.php [L]
RewriteRule ^([a-z]*)?$ articles.php?cat=$1
Обоати внимание, что при использовании
RewriteRule ^([a-z]*)?$ articles.php?cat=$1
Адресс долджен быть вида
http://site.com/news
а при
RewriteRule ^([a-z]*)/?$ articles.php?cat=$1
Адресс долджен быть вида
http://site.com/news/
Последний раз редактировалось Naydav; 03.07.2008 в 16:39..
|
|
|

03.07.2008, 16:49
|
|
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме: 1595333
Репутация:
291
|
|
хотелось бы посоветовать ТС также прочитать вот это: http://www.opennet.ru/docs/RUS/mod_rewrite/.
|
|
|

03.07.2008, 18:51
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
5triker, $ не лишний. (хотя, если честно я не знаю нафига он.)
Naydav, на то что ты обращал мое внимание, я знал. А вот по поводу примера есть пара замечаний. во-первых в твоем примере обработаеться только одно правило потому что у тебя после первой строки идет флаг [L](он означает что это мол последнее правило), а во-вторых ты предлагаешь жестко привязать это к реальной папке articles а .htsccess придется класть в корень сайта что не допустимо в моем случае...
zythar, я вообще то когда то смотрел эту статью, но там много лишнего и переведена она не очень хорошо. Сложно понять. 
Но вообще всем спасибо за попытки помочь. Тут вдруг в голову пришла мысль как сделать. Получилось так
Код:
RewriteEngine On
RewriteRule ^([^a-z])?$ index.php
RewriteRule ^([a-z]+)?$ articles.php?cat=$1 [L]
то есть добавилось новое правило вначало если никаких символов от a-z то индекс. если они есть то статьи.
|
|
|

03.07.2008, 19:05
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
хотя, если честно я не знаю нафига он
^ - начало строки
$ - конец строки
во-первых в твоем примере обработаеться только одно правило потому что у тебя после первой строки идет флаг [L](он означает что это мол последнее правило)
Я зная, я специально его и поставил!!!
Если в адресной строке site.ru/articles/, то выводим индекс, и дальнейшие правила не считываем
а во-вторых ты предлагаешь жестко привязать это к реальной папке articles а .htsccess придется класть в корень сайта что не допустимо в моем случае...
Какой реальной папке, да все равно есть она к тебя физически папка эта или нет
RewriteRule ^antichat/?$ index.php [L]
Это означает, если в адрессной строке есть запрос
site.ru/antichat/, то вызываем скрипт ndex.php, и все остальные правила не обрабатываем
А физически ее может и не быть, папки эитой
Последний раз редактировалось Naydav; 03.07.2008 в 19:11..
|
|
|

03.07.2008, 19:07
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
Naydav, ну вот, сенк. Теперь буду знать.
|
|
|

03.07.2008, 19:09
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Прочти выше
Вот тебе пример
_http://www.motosale.com.ua/aprilia/
_http://www.motosale.com.ua/kawasaki/
Ты что реально думаешь, что есть папки aprilia и kawasaki?
Нет конечно, вот строка, что их (ссылки) обрабатывает
RewriteRule ^(.*)/$ index.php?sample=model&name=$1 [L]
Последний раз редактировалось Naydav; 03.07.2008 в 19:14..
|
|
|

03.07.2008, 19:25
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
Naydav, но у меня то это реальная папка! там не нужно делать никаких подстановок и замен.
|
|
|

03.07.2008, 19:29
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Аааа...
Понятно, тогда .htaccess в папку articles
RewriteRule ^([a-z]+)?$ articles.php?cat=$1 [L]
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|