Помогите сформировать реврайт адресов

12
Erick Flatcher
На сайте с 05.02.2002
Offline
216
759

Значит такая тема:

Есть адреса вида:

site.com/segment1/segment2/segmentX

site.com/segment1/segment2/segmentY

site.com/segment1/segment2/segmentZ

Нужно из всех урлов убрать segment1 + из первого урла убрать segment2, во всех остальных урлах segment2 оставить.

Спасибо.

Shtogrin
На сайте с 02.11.2006
Offline
95
#1

У вас три адреса или три множества адресов, т.е. segmentX, segmentY, segmentZ - постоянные или они различные в адресах? В первом случае просто, во втором не возможно без дополнительной информации о последней составляющей. Приведите реальный пример адресов для преобразования, может будет проще понять

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Erick Flatcher
На сайте с 05.02.2002
Offline
216
#2

вот так:

новость: site.com/content/news/news/1234

название категории: site.com/content/news/sport

архив: site.com/content/news/archive

content убираем везде, news надо убрать только в адресе новости

получится идеально логично и красиво:

новость: site.com/news/1234

название категории: site.com/news/sport

архив: site.com/news/archive

genom
На сайте с 29.07.2004
Offline
92
#3


RewriteEngine On

RewriteRule ^news/([0-9]+)/$ /content/news/news/$1
RewriteRule ^news/([0-9]+)$ /content/news/news/$1
RewriteRule ^news/([a-z]+)/$ /content/news/$1
RewriteRule ^news/([a-z]+)$ /content/news/$1
RewriteRule ^news/archive/$ /content/news/archive
RewriteRule ^news/archive$ /content/news/archive
«Если бы делать было бы столь легко, как знать, что надо делать — часовни были бы соборами, хижины — дворцами» У.Шекспир
genom
На сайте с 29.07.2004
Offline
92
#4

Для 2-ого Apache


RewriteEngine On

RewriteRule ^/news/([0-9]+)/$ /content/news/news/$1
RewriteRule ^/news/([0-9]+)$ /content/news/news/$1
RewriteRule ^/news/([a-z]+)/$ /content/news/$1
RewriteRule ^/news/([a-z]+)$ /content/news/$1
RewriteRule ^/news/archive/$ /content/news/archive
RewriteRule ^/news/archive$ /content/news/archive

Ну и новости у тебя должны быть только цифры, а категории только мал. англ буквы. Иначе правило не сработает.

Shtogrin
На сайте с 02.11.2006
Offline
95
#5

Правила для archive уже не нужны, так как они пойдут аналогично категориям (3-4 строка).

genom
На сайте с 29.07.2004
Offline
92
#6

Shtogrin, Спасибо. Верно, переборщил =)

genom
На сайте с 29.07.2004
Offline
92
#7

Erick Flatcher, Достаточно вот этого:


RewriteEngine On

RewriteRule ^/news/([0-9]+)/$ /content/news/news/$1
RewriteRule ^/news/([0-9]+)$ /content/news/news/$1
RewriteRule ^/news/([a-z]+)/$ /content/news/$1
RewriteRule ^/news/([a-z]+)$ /content/news/$1

Только категорию с именем archive делать нельзя.

topy
На сайте с 28.03.2006
Offline
142
#8

Также прошу помощи в сабже:

мои адреса вида

http://www.site.ru/index.php?subcat=93

и

http://www.site.ru/index.php?cat=30

как мне сделать чтобы было например для первого адреса так

http://www.site.ru/s93

а для второго

http://www.site.ru/с30

PS что-то не могу сообразить

Новости коротко и ясно (https://subnews.ru)
tommy-gung
На сайте с 22.11.2006
Offline
287
#9

topy,


RewriteRule ^s([0-9]+)(/?)$ index.php?subcat=$1
RewriteRule ^c([0-9]+)(/?)$ index.php?cat=$1
Здесь не могла быть ваша реклама
topy
На сайте с 28.03.2006
Offline
142
#10

Хм... умом понимаю что должен работать, но почему-то .htaccess не реагирует ни на что вообще, даже на простые, очевидные замены.

Что-то в сервере (на других доменах этого аккаунта работает и более сложный рерайт)

tommy-gung, спасибо, буду разбираться что там такое.

12

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