еще один mod_rewrite

12
Давид
На сайте с 12.07.2004
Offline
128
1444

Собствено ползал по поиску нашел кучу примеров. но возник вопрос.

если заменяем в htaccess постранично динамические на статические это понятно. то есть для например страницы для text.php?id=1

RewriteEngine On

RewriteBase /
RewriteRule text/([0-9]+)\.html /text.php?id=$1

а если у например не знаем сколько будет страниц и как они будут называтся но знаем сколько и каких переменных будет, как тогда писать?

RewriteEngine On

RewriteBase /

RewriteRule ^(.*)/([0-9]+)\.html /text.php?id=$1

грубо говоря в правой части как правильно написать ?

sniffer
На сайте с 15.12.2005
Offline
80
#1

Вот так:

RewriteEngine on

RewriteBase /

RewriteRule ^([a-z]*)/([0-9]+)/([a-z]*)(|/)$ index.php?section=$1&id=$2&action=$3

BeeR or not to BeeR? (вот в чем вопрос)
Давид
На сайте с 12.07.2004
Offline
128
#2

sniffer, тоесть вы хотите сказать что это фрагмент будет работать и с со страницей bla-bla-bla.php?$i=1&$j=23 итд ?

тоесть мне нет необходимости писать в htaccess про каждую такую страничку ?

antono
На сайте с 12.07.2004
Offline
303
#3

RewriteEngine On

RewriteBase /

RewriteRule ^(.*)/([0-9]+)/$ /text.php?nazvanie=$1&numpage=$2

.html в я бы убрал, получится

site.ru/cat/2/

в ПХП скрипте у переменной nazvanie будет значение "cat" а numpage значение "2", делайте с ними то что и нужно сделать для этих переменных

basterr
На сайте с 24.11.2005
Offline
719
#4

мне тоже заодно тогда помогите.

у меня страницы формируются следующим образом:

d.php?1, d.php?2, ..., d.php?n,...

дак вот что написать? вот так не помогает:

RewriteEngine on

RewriteRule ^d([0-9]*)+.html$ /d.php?$1

т.е. незнаю что написать справа, заместо d.php?$1 - т.к. это не работает.

sniffer
На сайте с 15.12.2005
Offline
80
#5
Давид:
bla-bla-bla.php?$i=1&$j=23

Честно сказать смысл этой записи я не понял. Но кажись догадался к чему вы клоните. ☝

Тогда пробуйте такой код:

RewriteEngine On

RewriteBase /

RewriteRule ^([a-z]*)/([0-9]+)(|/)$ $1.php?id=$2

т.е. допустим при наборе в строке site.ru/articles/123/ реальный урл будет вида: site.ru/articles.php?id=123.

а при наборе в строке site.ru/news/567/ реальный урл будет вида: site.ru/news.php?id=567

Думаю костяк идеи ясен, а там уже наращиваете мясо как вам угодно :)

antono
На сайте с 12.07.2004
Offline
303
#6

RewriteRule ^d([0-9]*)+.html$ /d.php?variable=$1

переменной variable присвоится значение которое будет между d и .html

Давид
На сайте с 12.07.2004
Offline
128
#7
antono:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/([0-9]+)/$ /text.php?nazvanie=$1&numpage=$2
.html в я бы убрал, получится
site.ru/cat/2/
в ПХП скрипте у переменной nazvanie будет значение "cat" а numpage значение "2", делайте с ними то что и нужно сделать для этих переменных

это то понятно. я может некорректно задал вопрос.

допустим создается N число страниц через админку. у каждой страницы свое название, например text.php, supertext.php итд но переменные передаются одинаковые.

по вашему коду мне каждой странице нужно прописать строчку

RewriteRule ^(.*)/([0-9]+)/$ /text.php?nazvanie=$1&numpage=$2

RewriteRule ^(.*)/([0-9]+)/$ /supertext.php?nazvanie=$1&numpage=$2

вот я и нинтересуюсь , можно л написать так правую часть чтобы не надо было писать RewriteRule ^бла бла бла , для каждой странички

Давид
На сайте с 12.07.2004
Offline
128
#8

sniffer, аха чегото я сам не допер до этого :) спасибо . попробую.

antono
На сайте с 12.07.2004
Offline
303
#9

нет, нельзя, так не понятно какой файл будет исполняться если в браузер ввести

site.ru/cat/2/

должно быть только одно условие в реврайте не противоречащее другому. В вашем же случае нудно сделать пхп файлик, например dispecher.php, в котором будут инклудятся уже названия страниц text.php или supertext.php в зависимости от переменной nazvanie. То есть если мы вводим:

site.ru/supertext/2/

то dispecher.php будет инклудить файл supertext.php, и т. д.

Давид
На сайте с 12.07.2004
Offline
128
#10

antono, хм. ок а если ну его ети папки.

тоесть www.site.ru/название_страницы_123_321.html вышеприведенный код сработает ? точнее правая часть?

RewriteRule ^([a-z]*)_([0-9]+)_([0-9]+).html$ $1.php?nazvanie=$2&numpage=$3

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий