Здравствуйте. Столкнулся с проблемой, не могу понять как сделать отрицание не единственного символа а последовательности. Т.е. например [^a] - шаблон для любого символа кроме "a" [^0-9] - шаблон для любого символа кроме цифр. а мне нужно что-то вроде ^index.php (но в таком синтаксисе, как я понял символ ^ означает привязку к началу) Задача стоит следующим образом для любых ссылок вида www.mysite.ru/abc.php?a=1 www.mysite.ru/xxx.php www.mysite.ru/pic.jpg .... переделать в www.mysite.ru Сейчас я пока нашел такой вариант. для каждого файла прописываю RewriteRule некий_файл.php / [R,NC,L] А хотел бы сделать для всех файлов кроме index.php переходить на index.php
А просто Код (Text): RewriteEngine On RewriteRule ^.*$ /index.php Не работает разве? Только как ты будешь картинки раздавать?
Адресная строка меняется на правильную(почти) но страница не отображается, вместо этого FireFox пишет: Неверное перенаправление на странице Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
И вопрос про отрицание последовательности остается в силе Например запрет последовательности "abc" можно ли записать так [^a][^b][^c] ?? Или как вообще правильно записывать отрицание последовательности?
Правильно говорит Firefox, потому что глупо отрицать все символы, а особенно их и наличие, и отсутствие. Как запрос словами прочитать? =) Отрицай хотя бы группу символов, например [^a-zA-Z0-9-+_-]
Ну а как все-таки выглядит регулярка для нахождения любого слова кроме заданного, например кроме того же "index.php"