mod Rewrite и всё, что с ним связано.

Valdisss

Guest
mod Rewrite и всё, что с ним связано.

Добрый вечер!

Хотел бы спросить вас про mod Rewrite, а конкретно как правильно написать правило для изменения ссылок, и попросить расшифровать это правило. Возможно вы посоветует хорошую статью, например как статья про Регулярные Выражения на phpclub.ru.

Меня интересуют следующие моменты:
1) RewriteRule - задаёт правило изменения ссылки, а что делает RewriteCond
2) Зачем в некоторых правилах добавляется [L]
3) Разъясните синтаксис составления правила.
4) Поясните, пожалуйста, на конкретном примере

Вот пример

ссылка выглядит так:
http://mysite.ru/?page_cat=news&news_id=30
а возможно и так
http://mysite.ru/?page_cat=shop&group_id=5&by_id=1120
А возможно что будет передаваться и большее кол-во переменных
Объясните, пожалуйста, как правильно составлять правила.
И просьба не отсылать в мануал, отсылайте если есть действительно хорошая статься.

Всем заранее спасибо :) !

-~{}~ 29.04.06 23:06:

Да забыл, добавить нужно изменить данные ссылки на такой тип:
http://mysite.ru/pages/news/30
 

Valdisss

Guest
Спасибо за ссылку, но всё равно напишите или там всё есть?
 

Valdisss

Guest
Автор оригинала: SiMM
А ты уже всё прочёл?
Всё прочёл, но пару моментов так и не понятны:

1) в php - регулярные выражения начинаются с / и заканчиваются / , как обстоит дело в .htaccess

2) Непонятно для чего используется [L]

3) Условие [OR] - или, а есть else ?

4) напишите, пожалуйста, готовый вариант для моего примера, мне будет так проще сориентироваться
 

Apocalepse

Новичок
Сомневаюсь что кто то будет писать для тебя готовый вариант.
Когда я вообще не знал о mod_rewrite и даже не юзал еще регэкспы, мне понадоблось сделать ЧПУ.
Я легко написал правило подобное тому, которое нужно тебе, используя вот эти статьи:
http://sitemaker.ru/technologies/webserver/mod_rewrite/
http://sitemaker.ru/technologies/webserver/mod_rewrite2/
http://sitemaker.ru/technologies/webserver/mod_rewrite3/
http://sitemaker.ru/technologies/webserver/mod_rewrite4/
 

Valdisss

Guest
Автор оригинала: Apocalepse
Сомневаюсь что кто то будет писать для тебя готовый вариант.
Когда я вообще не знал о mod_rewrite и даже не юзал еще регэкспы, мне понадоблось сделать ЧПУ.
Я легко написал правило подобное тому, которое нужно тебе, используя вот эти статьи:
http://sitemaker.ru/technologies/webserver/mod_rewrite/
http://sitemaker.ru/technologies/webserver/mod_rewrite2/
http://sitemaker.ru/technologies/webserver/mod_rewrite3/
http://sitemaker.ru/technologies/webserver/mod_rewrite4/
Спасибо именно эти я статьи прочёл.

Но вот вопросы остались, если можете, помогите. Хотелось бы разобраться.
 

~xb1x

Новичок
Доброго времени. Решил не создавать новой темы... вобщем имею следующее /cms/ - директория с некоторыми модулями /book/ - гостевая /news/ - новости /poll/ - опрос.

в каждой из перечисленных директорий есть файлы admin.php которые отвечают понятно за что =), есть ли возможность закрыть .htaccess'ом эти файлы, при условии: что приобращении test1.ru/cms/ - стандартное окно авторизации (с исп. .htpasswd), а при обращении к test1.ru/news/ - 403 forb.

Однако введя имя пользователя и пароль в окне авторизации можно будет получить доступ ко всем модулям, т.е. и к /cms/ и к /news/, /book/...

я реализовывал так, но получилось не совсем то что надо...

<FilesMatch "cms$|admin.php">
AuthName "--private zone--"
AuthType Basic
AuthUserFile C:\WebServers\home\test1.ru\.htpasswd
require valid-user
</FilesMatch>

но тогда при обращении к файлам admin.php все равно возникает окно авторизации, а надо 403 !
т.е. зреет другой вопрос, можно ли в файле .htaccess использовать что-то вроде цикла ??
 

FaRaOn

Новичок

~xb1x

Новичок
ну при всем уважении =) ртфм'ами темболее такими тыкать не стоит. Того что мне нужно в этих статьях не написано. ни сторочки, а вот то что надо, я помоему вполне конкретно объяснил... статьи эти блин из разряда "защита от детей".

еще раз спасибо. мануал был оч. полезным.

-~{}~ 17.05.06 09:42:

еще хотелось добавить, организовать защиту нужно не используя session_start() только при помощи htaccess.
 
Сверху