помогите с переделкой урла mod_rewrite

FRIE

Новичок
помогите с переделкой урла mod_rewrite

на сайте ссылки такого вида localhost/test/index.php?category=6

файл htaccess поместил в дерикторию test и написал такие строки

RewriteEngine on
RewriteRule ^index/([^/\.]+)/?$ index.php?category=$1 [L]

чтобы получить такой урл localhost/test/index/6 но он чето не изменяется
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
FRIE
Начни с простого, без подстановок, просто с текстовой строкой.

-~{}~ 30.07.10 13:05:

Вот здесь почитай, потом велкам.
http://www.egoroff.spb.ru/portfolio/apache/
 

Духовность™

Продвинутый новичок
забей на преобразования непосредственно в мод реврайт и делай их на уровне PHP - это гибче.
Код:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|jpeg|png|css|cur|php|phtml|doc|xls|txt)$ [NC]
RewriteRule (.*) index.php?_path=/$1&%{QUERY_STRING} [L]
 

FRIE

Новичок
Автор оригинала: Mr_Max
FRIE
Начни с простого, без подстановок, просто с текстовой строкой.
вот так чтоли? RewriteRule index.php?category=$1 [L] ? - ничего не происходит (( не понимаю блин

-~{}~ 30.07.10 14:12:

Автор оригинала: triumvirat
забей на преобразования непосредственно в мод реврайт и делай их на уровне PHP - это гибче.
Код:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\.(js|ico|gif|jpg|jpeg|png|css|cur|php|phtml|doc|xls|txt)$ [NC]
RewriteRule (.*) index.php?_path=/$1&%{QUERY_STRING} [L]
тут вообще ничего не понятно (

-~{}~ 30.07.10 14:18:

если может кто напишите плиз как из такой строчки

localhost/test/index.php?category=6

сделать localhost/test/6 ?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
triumvirat
тссссссссс.

FRIE
нет. Сделай сначала без обратных связей.
ссылка на документацию на 2 поста выше

-~{}~ 30.07.10 13:19:

если может кто напишите плиз как из такой строчки
не попрошайничай.
здесь дают удочку а не рыбу
 

FRIE

Новичок
попробовал сделать так

RewriteRule category6.php index.php?category=6 [L]

по идее должно замениться на category6.php но не заменяется, так и должно быть?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Что у тебя в адресной строке браузера?

-~{}~ 30.07.10 13:33:

Давай так,
1. Что ты запрашиваешь в адресной сроке браузера
2. Что ты хочешь получить.
3. Какое у тебя правило реврайта.
 

FRIE

Новичок
localhost/test/index.php?category=6

и нажимаю enter или захожу по этой же ссылке

вот изначальная ссылка

localhost/test/index.php?category=6

хочу получить из нее localhost/test/category6.php - это так для теста
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Ясно.
Ті неправильно понял, как работает реврайт.
А он работает в точности до наоборот.
при запросе в адресной строке
1. /url1/url2/url3/
фактически запрос идет по другому адресу.
2.
например main.php?a=$1&b=$2&c=$3
но браузер у тебя (если не указан принудительный редирект) остается на урл-е, что описан в п.1.
3. Ты на localhost работаешь, или папка так называется?
Если первое, то его писать не нужно.
Почтай внимательно статьи по ссылке.
Там понятно все написано.
Там есть 1 мануал, 2 - примеры использованиня.
 

FRIE

Новичок
почитал статьи теперь совсем запутался,

и так, попробую еще раз рассказать что имею и чего хочу в итоге.

есть на сайте ссылки такого вида <a href="index.php?category=6"></a>

сайт на локалхосте , страничка index в директории test, и там же лежит файл .htaccess .

сейчас если нажать на такую ссылку то в адресной строке будет
localhost/test/index.php?category=6

а нужно чтобы в адресной строке было так - localhost/test/6
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
FRIE
есть на сайте ссылки такого вида <a href="index.php?category=6"></a>
сейчас если нажать на такую ссылку то в адресной строке будет
localhost/test/index.php?category=6
Естественно. так и должно быть.

Ссылки в ШТМЛ-ах реврайт за тебя менять не умеет. То-есть их нужно поменять вручную. (прям сейчас менять не нужно).
Сначала сделай рабочее правило.

Тупо вводи в строку браузера http://localhost/test/6
Сделай, чтоб запрос шел, например, на phpinfo.php

-~{}~ 30.07.10 14:29:

Welcome
Друг, здесь так не принято.

-~{}~ 30.07.10 14:29:

Здесь принято, чтоб человек САМ достиг решения.
 

FRIE

Новичок
Во!! теперь понял! это типа я на ссылку такую должен нажать http://localhost/test/6 чтобы браузер сделал запрос на такой урл http://localhost/test/index.php?category=6 !!!

тоесть эти правила делают не из http://localhost/test/index.php?category=6 такую ссылку http://localhost/test/6

а наоборот - из http://localhost/test/6 такую http://localhost/test/index.php?category=6

вот что я не догонял!!!

теперь переделал ссылки сделал их такими <a href="6"></a>

Mr_Max спасибо

-~{}~ 30.07.10 15:40:

я думал что это правило изменяет строку урл, а на самом деле строка урл создается вручную, а правило разбирает эту строку и делает правильный запрос
 
Сверху