Не пинайте... больно, где-то я встречал случайно данные по этому вопросу, а где не помню. Пытался искать через поиск, но не могу правильно задать запрос на поиск, потому что не помню в каком направлении надо искать. --------------- Как поменять ссылки такого вида www.sait.com/?id=12&info=5 в такой www.sait.com/id/12/info/5/ --------------- Всем огромное спасибо за понимание и помощь
Чет у меня нечего не выходит, подскажите пример. Есть допустим Адрес: Server_name/index.php?limit=4 Но могут добавиться переменные после limit или их может вовсе и не быть. Переменные могут быть разные и название и значения. И я не могу догнать, как писать, наверно я не выспался.
Я нашел вот это http://www.nbsp.ru/articles/2002/09/10/ ... ility.html Но почему-то у меня не получается.
вроде у меня получилось проверьте ребята Код (Text): RewriteRule ^([a-z]+)/([a-z]+)/([0-9]*)/(.*)$ /index.php?limit=$3 [R]
мануал вам в помощь http://httpd.apache.org/docs/2.2/misc/rewriteguide.html http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
Я посмотрел инфу, и вдоволь намучавшись. Я максимум что смог, так это сделать такой вариант. Код (Text): RewriteRule ^(.*)/(.*)/(.*)/$ /$1?$2=$3 Теперь при обращении на адрес: http://**/new_id/id/29/ Я попадаю сюда http://**/new_id.php?id=29 В браузере светиться адрес http://**/new_id/id/29/ это супер. Но у меня все ссылки на сайте сделаны в таком виде http://**/new_id.php?id=29 Я пытался сделать, чтобы если я нажимаю на ссылку такого вида http://**/new_id.php?id=29 то она в браузере видна под таким видом http://**/new_id/id/29/, вот так я пытался это сделать Код (Text): RewriteRule ^new_id.php?(.*)=(.*)$ /new_id/$1/$2/ [R] Может я чет не так делаю или это не возможно? Неужели надо писать все ссылке на сайте такого вида http://**/new_id/id/29/ Дайте дельный совет, а то в доках на русском я ответа не нашел?
ничего на будущее пригодицца. главное - настроиться на поиск/замену и отключить мозг, чтоб не скучал)) по идее еще можно включить буферизацию и перед выдачей пользователю производить замену регулярками... наверное... я не пробовал...
pel Но по идее, если мона заменить этот вариант http://**/new_id/id/29/ на это http://**/new_id.php?id=29 Та мона поменять и этот http://**/new_id.php?id=29 на http://**/new_id/id/29/. Почему у меня не получается, я не могу понять?
ну, вы ж сами видели, mod_rewrite ссылку в адресной строке оставляет неизмененной. Он преобразует ее только для сервера. Конечно, можно поменять /new_id.php?id=29 на /new_id/id/29/ Только вот в адресной строке так и останется /new_id.php?id=29, а серверу передастся запрос /new_id/id/29/... И сервер скажет page not found, т.к. будет искать индексный файл в папке /new_id/id/29/ понятно? если "Не совсем", то просто поверьте на слово
DarkElf Я понимаю, что он работает только с адресной строкой. Но может ее, и поменять для пользователя. Тобиш в адресной строке. Как я понял можно сделать так чтобы он менял ссылку /new_id.php?id=29 на /new_id/id/29/ для пользователя, а для сервера он сменил бы обратно. В адресной строке как бы всегда светилось /new_id/id/29/ типа перенаправление произошло. Чета я тут нагородил, надеюсь, вы меня поймете. Сам
А по чему тогда такие варианты работают :?: : 1. RewriteRule ^(.*)/(.*)/(.*)/$ /$1?$2=$3 2. RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)/$ /$1?$2=$3&$4=$5 Тобиш для разных ссылок типа 1. /new_id/id/28/ 2. /new_id/id/28/limit/5/ Сами понимаете все зависит от количества переменных.
Масик, не нервируй меня. (почти (с))) хх. Даже не знаю, что сказать... Правильные варианты, вот и работают. кстати, это тоже как-то обходится... Только это не ко мне. Регулярки меня ненавидят, я их тоже не люблю, поэтому мы с ними разбираемся только когда припрёт и только копанием в мануалах и поисковиках.
Всем огромное спасибо. pel В принципе то, что я хотел, почти, я научился делать. Один минус в этом, что надо писать ссылки в php не так как я привык по старинке. Но я думаю, что это мелочь главное достигнут результат удобства ссылок для пользователя и поисковиков.