[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mod_rewrite
DmitryOpalev
Здравствуйте.
Решил вот до mod rewrite`a добораться :D
Вообщем у меня есть список товаров. Делаю для каждого отдельную страницу.
Например хочу чтобы адрес выглядел как товар/производитель/модель
и вместо product.php?product=pylesos&proiz=sony&model=23
было бы /pylesos/sony/23
Но в статьях в интернете нашел только что-то наподобие этого:
RewriteEngine on
RewriteRule ^product/([A-Za-z]+)/([A-Za-z]+)/([0-9]+) ... и т.д.

При этом в url мы так же заменям значние GET`ов. Но зачем тогда, скажите, заменять значние GET`ов если и без них все работает, но причем можно писать любое значние, существует такой товар или нет. И как проверять есть товар или нет, если никаких значний в product.php не поступает?
Вообщем, объясните все как правильно, и как оно вообще работает :)



Спустя 12 часов, 12 минут, 14 секунд (7.01.2012 - 11:11) VolDroN написал(а):
RewriteRule ^product/({-_a-zA-Z0-9}+)/({-_a-zA-Z0-9}+)/({0-9}+)/?$ /product.php?product=$1&proiz=$2&model=$3


в product.php поступает тот же get, т.е. ты в нём можешь написать:
if(isset($_GET['product'], $_GET['proiz'], $_GET['model']))
{
....
}


Спустя 3 дня, 5 часов, 1 минута, 39 секунд (10.01.2012 - 16:13) DmitryOpalev написал(а):
Немного исправил, спасибо)

Спустя 7 месяцев, 6 дней, 22 часа, 1 минута, 9 секунд (17.08.2012 - 14:14) dron4ik написал(а):
Цитата (VolDroN @ 7.01.2012 - 09:11)
<pre class="sh_sourceCode" rel="code">RewriteRule ^product/({-_a-zA-Z0-9}+)/({-_a-zA-Z0-9}+)/({0-9}+)/?$ /product.php?product=&proiz=&model=</pre>

в product.php поступает тот же get, т.е. ты в нём можешь написать:
<pre class="sh_sourceCode" rel="php"><span class="sh_control">if</span><span class="sh_symbol">(</span><span class="sh_function">isset</span><span class="sh_symbol">(</span><span class="sh_variable">$_GET</span><span class="sh_symbol">[</span><span class="sh_string">'product'</span><span class="sh_symbol">],</span> <span class="sh_variable">$_GET</span><span class="sh_symbol">[</span><span class="sh_string">'proiz'</span><span class="sh_symbol">],</span> <span class="sh_variable">$_GET</span><span class="sh_symbol">[</span><span class="sh_string">'model'</span><span class="sh_symbol">]))</span>
<span class="sh_cbracket">{</span>
    <span class="sh_symbol">....</span>
<span class="sh_cbracket">}</span></pre>

VolDroN подскажи, если строка урла выглядит так "/product85"
как дать скрипту индекса понять что это именно продукт и его ИД 85?
"/post132"
"/page43"
"/project2" к примеру)))
({a-z}+)({0-9}+) /?rout=$1&id=$2 Так что ли?)

Спустя 2 минуты, 51 секунда (17.08.2012 - 14:17) Игорь_Vasinsky написал(а):
распарсивать такой гет придётся - а вообще это идиотизм - т.к.

Цитата
чтоб не кусать себя за локти во время этапа разработки - нужно думать головой во время этапа  проектирования

(с) I am

Спустя 17 минут, 23 секунды (17.08.2012 - 14:34) dron4ik написал(а):
Цитата (Игорь_Vasinsky @ 17.08.2012 - 12:17)
распарсивать такой гет придётся - а вообще это идиотизм - т.к.

Цитата
чтоб не кусать себя за локти во время этапа разработки - нужно думать головой во время этапа  проектирования

(с) I am

Так на будущее спросил) а вообще разделить такую строку он способен?

Спустя 4 минуты, 42 секунды (17.08.2012 - 14:39) Игорь_Vasinsky написал(а):
ну типа того, я не очень то шарю в этом моменте wink.gif

Спустя 3 часа, 12 минут, 58 секунд (17.08.2012 - 17:52) VolDroN написал(а):
Можно конечно smile.gif
RewriteRule /({-a-zA-Z}+)({1-9}+)$ index.php?route=$1&id=$2

Спустя 1 день, 2 часа, 29 минут, 31 секунда (18.08.2012 - 20:21) dron4ik написал(а):
Цитата (VolDroN @ 17.08.2012 - 15:52)
Можно конечно smile.gif
RewriteRule /({-a-zA-Z}+)({1-9}+)$ index.php?route=$1&id=$2

RewriteBase /
RewriteRule ^([a-zA-Z]+)([1-9]+)*$ /index.php?route=$1&id=$2

Тот не работал, но, так я понял тоже можно?

Спустя 1 день, 21 час, 47 минут, 13 секунд (20.08.2012 - 18:08) VolDroN написал(а):
точно, надо [ использовать)

Спустя 14 часов, 24 минуты, 10 секунд (21.08.2012 - 08:33) Игорь_Vasinsky написал(а):
то ли лыжи не едут, то ли я...

линк

http://site.ru/?index.php?route=page&page=home

хочу

http://site.ru/page/home.html



пишу

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?route=$1&page=$2 [L]


результат 404

Спустя 1 час, 27 минут, 31 секунда (21.08.2012 - 10:00) Игорь_Vasinsky написал(а):
up

Спустя 29 минут, 57 секунд (21.08.2012 - 10:30) Winston написал(а):
Игорь_Vasinsky
А так?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]*)/([^/]*)\.html$ index.php?route=$1&page=$2 [L,QSA]

Спустя 10 минут, 50 секунд (21.08.2012 - 10:41) Игорь_Vasinsky написал(а):
dry.gif неа...

мистика

Спустя 34 минуты, 15 секунд (21.08.2012 - 11:15) dron4ik написал(а):
RewriteBase / есть?, как я понял без сеё записи нужно подставлять слеш в RewriteRule

попробуй (.*)/(.*)\.html$ index.php?route=$1&page=$2

Спустя 5 минут, 33 секунды (21.08.2012 - 11:21) Игорь_Vasinsky написал(а):
нет..
с RewriteBase / тоже пробывал

я уже даже так подставил, не работает

^(page)/(anonce)\.html$ /index.php?route=$1&page=$2 [L]

Спустя 23 минуты, 12 секунд (21.08.2012 - 11:44) dron4ik написал(а):
RewriteRule ^([a-zA-Z1-9]+)/([a-zA-Z1-9]+)*\.html$ /index.php?route=$1&page=$2
А так?

Спустя 2 минуты, 14 секунд (21.08.2012 - 11:46) Игорь_Vasinsky написал(а):
да тоже самое))) тут что то другое

Спустя 1 минута, 13 секунд (21.08.2012 - 11:47) dron4ik написал(а):
Я проверил у себя на хостинге, работает... Может не подключен модуль? или денвер барахлит(если на нем))

Спустя 4 минуты, 3 секунды (21.08.2012 - 11:51) Игорь_Vasinsky написал(а):
в конфиге модуль подключён, в папке он есть
я уже перегружал денвер и нефига.. хз.. говорю же мистика

на денвере то он по умолчанию включён

Спустя 5 минут, 59 секунд (21.08.2012 - 11:57) dron4ik написал(а):
RewriteEngine On
RewriteRule (.*) index.php?$1
)

Спустя 14 минут, 47 секунд (21.08.2012 - 12:12) Игорь_Vasinsky написал(а):
и что это даст? у меня нет обработки, я прямые редиректы делаю

Спустя 6 минут, 9 секунд (21.08.2012 - 12:18) dron4ik написал(а):
нужно починить... как так, я только понял как она работает, а вдруг полетит, у кого мне спрашивать совета?

Спустя 2 минуты, 17 секунд (21.08.2012 - 12:21) Игорь_Vasinsky написал(а):
не понял ничего biggrin.gif

Спустя 14 минут, 26 секунд (21.08.2012 - 12:35) dron4ik написал(а):
Цитата (Игорь_Vasinsky @ 21.08.2012 - 10:21)
не понял ничего biggrin.gif

почини у себя,

Если у меня тоже сломается, я к тебе приду чинить))))

Спустя 12 минут, 45 секунд (21.08.2012 - 12:48) Игорь_Vasinsky написал(а):
)))) не чинится же ph34r.gif

Спустя 29 дней, 28 минут, 25 секунд (20.09.2012 - 13:16) dron4ik написал(а):
RewriteRule ^([a-zA-Z1-9]+)/([a-zA-Z1-9]+)$ /cat/$1.php?route=$2

Такая запись имеет право на жизнь?


_____________
Курс валют
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.