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

  • Автор темы Автор темы sssr
  • Дата начала Дата начала

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

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

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

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

мне абсолютно по барабану dva & tri - правило
должно лишь исключать dva & tri а всех остальных отработать.
 
У меня вот тоже проблема с регами в RewriteRule
Есть ссылки вида
http://some.ru/~variable?d=num
и
http://some.ru/~variable
Так вот мне нужно сделать так, что если в ссылке есть GET то перенаправить на один файл. а если GET нету то error.
RewriteRule ^~([^?]+)?(.*)$ index.php?name=$1 [L,QSA]
В таком варианте и первая и вторая ссылка переходит на index.php
 
sssr
чего "ненадежного" ты нашел в варианте предложенном SiMM?
 
vladax, видимо, дело в том, что
Это не совсем то что мне нужно .
sssr
редирект не нужен
Где ты там увидел редирект? А твоя фраза "это не совсем то" - это просто шедевр. Видишь ли, тут нет телепатов, и никто понятия не имеет, на какой вариант решения ты скажешь "это то", да и причины, почему вариант не катит, надо указывать (хотя бы потому, что это может помочь либо понять тебя, либо объяснить, почему тебе этого не нужно).
 
Граждане я же писал
> Мне именно нужно отрицание в контексте с совпадением в
пределах одного условия , редирект не нужен именно на эти исключения .
т.е. в Одном правиле совпадения исключит dva и tri.
Что же здесь такого сверх неясного.

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

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

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

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

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

Спасибо за внимание.
 
sssr, я тебе чем то обязан? Тут каждый день носится масса народа, которая решает сверхважную задачу, из них клещами приходится выуживать, что же это за задача и в итоге в большом количестве случаев оказывается, что всё гораздо проще и на самом деле им нужно совершенно другое. Я тебе предложил решение, оно тебе не понравилось (при чём без указания причин) - дело твоё, парься сам.
 
А как с моим вопросом выше? Никто не сможет ничего посоветовать?
 
Markus®, для решения твоего вопроса средства mod_rewrite вообще ненужны.
 
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]

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