помогите с mod_rewrite

krollik

Новичок
помогите с mod_rewrite

Вот столкнулся с проблемой! Заказчик требует ЧПУ подобные ссылки в магазине!
Изначально ссылка имеет такой вид
site.com?id=***
Можно приветсти её к такому ввиду
site.com?categoria=file&id=***
Нужно привести ссылку к виду
site.com/categoria/file
Как видно ID должен исчезнуть, но в коде на странице оно используется. Я знаю, что такое должно поллучиться, если побаловаться с mod_rewrite, но я в этом не силён.. Скажите возможно ли зделать так? Если да, то как? (напишите текст, который должен быть помещён в .htaccess пожалуйста)
Если такое невозможно, то предложите другой вариант.
ЗЫ Зарание спасибо! Я очень надеюсь на вас..
 

krollik

Новичок
Дело в том, что я уже пробывал разобраться на примерах - но мне это почти не удалось =((..
 

vittorio

Новичок
Наверное, стоит попробовать еще. Либо обратиться к профессионалу, который все сделает за тебя (естественно, не даром).
 

krollik

Новичок
=)) ладно, счас ешё попробую =)), тему только не закрывайте - я наверное тут ещё буду свои вопросы задавать..

-~{}~ 02.04.06 12:40:

Прочитав статью в PHPInside я более-менее понял как работает такая система, но я всё ещё не могу реализовать задачу, приведённую выше. А именно, я не могу понять как зделать скрытие какогонибудь аргумента от глаз постоних и поисковиков.. Такое возможно? (пример с скрытием ID смотрите выше)
 

Фанат

oncle terrible
Команда форума
в задаче, приведённой выше, ничего про "посторонних" и "поисковиков" не сказано.
не надо придумывать себе сложности на ходу.
надо просто сесть и сделать
 

krollik

Новичок
Да и ещё: поправте мой код пожалуйста, а то чтото я никак не пойму, почему он не работает:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]
RewriteRule ^/index/([a-Z]+)/([a-Z]+)/([0-9]+)\.html /index.php?$1=$2&id=$3

И у меня ещё один вопрос: какой должна быть ссылка на странице, чтобы всё работало нормально?

-~{}~ 02.04.06 12:51:

Автор оригинала: Фанат
в задаче, приведённой выше, ничего про "посторонних" и "поисковиков" не сказано.
не надо придумывать себе сложности на ходу.
надо просто сесть и сделать
Мне просто желательно, чтобы аргумент id вообще не фигурировал в адресной строке, но вродебы такое невозможно..
Вопрос про скрытие ID отпал. Просто помогите найти ошибку в коде приведённом выше..
 

Фанат

oncle terrible
Команда форума
И у меня ещё один вопрос: какой должна быть ссылка на странице, чтобы всё работало нормально?
ты путаешь причину и следствие.
СНАЧАЛА надо придумать, как должна выглядеть ссылка, а ПОТОМ уже под неё рисовать правило реврайта.
Мне просто желательно, чтобы аргумент id вообще не фигурировал в адресной строке
а не поделишься, случайно, про ту опасность, которая грозит, если поисковик увидит id?
 

krollik

Новичок
1. Ссылка будет выглядеть так
site.com/categoria/file
2. Просто заказчик капризный попался - хочет чтобы не было ID, а только слова, несущие смысл..
 

Фанат

oncle terrible
Команда форума
1. Ссылка будет выглядеть так
site.com/categoria/file
ну вот под ссылку и пиши правило.
или вообще все запросы направляй в скрипт, а внём уже разбирай, что грузить.

2. Просто заказчик капризный попался - хочет чтобы не было ID, а только слова, несущие смысл..
к теме ЧПУ это не имеет никакого отношения.
хочет слово - сделай слово.
 

krollik

Новичок
Что неправельного в таком правиле?
RewriteRule ^/index/([a-zA-Z]+)/([a-zA-Z]+)\.html$ /index.php?$1=$2
 

Фанат

oncle terrible
Команда форума
ну, к примеру, то, что оно не имеет никакого отношения к твоим ссылкам вида /categoria/file
 

Фанат

oncle terrible
Команда форума
странно.
сначала ты пишешь, что ссылка будет /categoria/file, а потом - что index/categoria/file.html
по ходу, ты сам не знаешь, чего хочешь.
 

krollik

Новичок
последний вариант точно окнчательный! помогите найти ошибку в условии.. просто ошибку не выдаёт, но если перейти по ссылке index/categoria/file.html выдаёт Array()
ЗЫ файл index.php имеет в себе такой код
PHP:
<?php
print_r($_REQUEST);
?>
Почему?

-~{}~ 02.04.06 19:30:

Вопрос ещё актуален!
 

pauk

Новичок
krollik
Cмотри на ход своих мыслей
Зачем тебе мозги напрягать, чтобы из
site.com?categoria=file
делать
site.com/index/categoria/file.html

Тебе надо стремиться в данном случае к
site.com/file

А
site.com?categoria=file&podcategoria=file2
ЧПУ как
site.com/file/file2
 

pauk

Новичок
=А про ошибку что?

http://sitemaker.ru/technologies/webserver/mod_rewrite/
Там четыре части про твою проблему.
Или вот
http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html

Ну и официальный ман (по английски, конечно :( )
 

krollik

Новичок
Млин, я уже достаточно прочитал мануалов по этой теме, только что-то не могу понять где у меня ошибка..
 

donflash

Вареник клуба
Я так делаю:

RewriteEngine On

RewriteRule \
^categoria\/file\/([0-9]+)(\/)?$ \
/index.php?page=categoria&id=$1 \
[L]
 
Сверху