mod_rewrite отрицание конкретного слова в контексте совпадения с любым словом ?

sssr

Новичок
mod_rewrite отрицание конкретного слова в контексте совпадения с любым словом ?

Вот никак не доходит и мануал прочитал по mod_rewritre и тп..
Есть файлы :
odin-index.php
dva-index.php
tri-index.php
..stotri-index.php
как мне добится чтобы при запросе на любой ....index.php за
искл. dva-index.php и tri-index.php отрабатывалось правило
urlrewrite к примеру на "номер".php

я могу конечно написать
RewriteRule ^([^/]+)-index.php$ $1.php

но вот как здесь добавить отрицание нескольких префиксов
ни как не доходит и так и сяк перепробовал - непашет.

знающие поскажите плз.
 

SiMM

Новичок
Можно просто прописать правило типа
RewriteRule ^(dva-index|tri-index)\.php$ $1.php [L]
перед остальными.
 

sssr

Новичок
> RewriteRule ^(dva-index|tri-index)\.php$ $1.php [L]
ставить правило с указанием последнего отрабатываемого -
не хотелось бы использовать такую не надежную логику.

Это не совсем то что мне нужно .
Мне именно нужно отрицание в контексте с совпадением в
пределах одного условия , редирект не нужен именно на эти исключения :) .

мне абсолютно по барабану dva & tri - правило
должно лишь исключать dva & tri а всех остальных отработать.
 

Markus®

Guest
У меня вот тоже проблема с регами в RewriteRule
Есть ссылки вида
http://some.ru/~variable?d=num
и
http://some.ru/~variable
Так вот мне нужно сделать так, что если в ссылке есть GET то перенаправить на один файл. а если GET нету то error.
RewriteRule ^~([^?]+)?(.*)$ index.php?name=$1 [L,QSA]
В таком варианте и первая и вторая ссылка переходит на index.php
 

vladax

Новичок
sssr
чего "ненадежного" ты нашел в варианте предложенном SiMM?
 

SiMM

Новичок
vladax, видимо, дело в том, что
Это не совсем то что мне нужно .
sssr
редирект не нужен
Где ты там увидел редирект? А твоя фраза "это не совсем то" - это просто шедевр. Видишь ли, тут нет телепатов, и никто понятия не имеет, на какой вариант решения ты скажешь "это то", да и причины, почему вариант не катит, надо указывать (хотя бы потому, что это может помочь либо понять тебя, либо объяснить, почему тебе этого не нужно).
 

sssr

Новичок
Граждане я же писал
> Мне именно нужно отрицание в контексте с совпадением в
пределах одного условия , редирект не нужен именно на эти исключения .
т.е. в Одном правиле совпадения исключит dva и tri.
Что же здесь такого сверх неясного.

> Где ты увидел здесь редирект.
Давайте не будем придираться к словам.
:) - вроде бы mod_rewrite и подразумевает редирект только
внутренний.

Если такое не возможно то так и скажите.
 

SiMM

Новичок
Автор оригинала: sssr
Граждане я же писал
> Мне именно нужно отрицание в контексте с совпадением в
пределах одного условия , редирект не нужен именно на эти исключения .
т.е. в Одном правиле совпадения исключит dva и tri.
Что же здесь такого сверх неясного.
Звучит неубедительно. Впрочем - дело твоё.
 

sssr

Новичок
Ясно и понятно все написано, что же ещё вам дорогие нужно ?

Если вы не хотите понять, или упорно провоцируете на детальное разжевование как на уроках информатики дабы мне самому стало ясно что поставленный мною вопрос не корректен, или может посещяемость форума слабнет :).

Уверяю вас я знаю о чем спрашиваю
и под конец "мои аргументы не убедительны" - блеск :).

А да ну вас.. проще самому разобраться , чем пытаться вытянуть из "преподобного" :) ,
тем более что ставить себя выше спрашивающего и отвечать в
тоне "Да надаели вы тут тупить " просто не вежливо.
А самому понять слабо, что же все-таки у вас хотят спросить.

Спасибо за внимание.
 

SiMM

Новичок
sssr, я тебе чем то обязан? Тут каждый день носится масса народа, которая решает сверхважную задачу, из них клещами приходится выуживать, что же это за задача и в итоге в большом количестве случаев оказывается, что всё гораздо проще и на самом деле им нужно совершенно другое. Я тебе предложил решение, оно тебе не понравилось (при чём без указания причин) - дело твоё, парься сам.
 

Markus®

Guest
А как с моим вопросом выше? Никто не сможет ничего посоветовать?
 

SiMM

Новичок
Markus®, для решения твоего вопроса средства mod_rewrite вообще ненужны.
 

MuXa247

Новичок
Re: mod_rewrite отрицание конкретного слова в контексте совпадения с любым словом ?

Originally posted by sssr
Вот никак не доходит и мануал прочитал по mod_rewritre и тп..
Есть файлы :
odin-index.php
dva-index.php
tri-index.php
..stotri-index.php
как мне добится чтобы при запросе на любой ....index.php за
искл. dva-index.php и tri-index.php отрабатывалось правило
urlrewrite к примеру на "номер".php

я могу конечно написать
RewriteRule ^([^/]+)-index.php$ $1.php

но вот как здесь добавить отрицание нескольких префиксов
ни как не доходит и так и сяк перепробовал - непашет.

знающие поскажите плз.
RewriteRule dva-index.php$ - [L]
RewriteRule tri-index.php$ - [L]
RewriteRule ^([^/]+)-index.php$ $1.php [L]

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