'[umka: ;13666839']RewriteEngine on
RewriteCond %{QUERY_STRING} ^up=
RewriteRule ^$ [R=404,L]
После шаблона в RewriteRule ожидается адрес, так что апач будет искать файл /[R=404,L] и флаг [L] останавливающий обработку апач здесь не увидит и если после этого правила есть RewriteRule .* index.php [L] то 404 ошибки не будет. В таких случаях на месте адреса достаточно дефиса.
RewriteEngine on
RewriteCond %{QUERY_STRING} ^up=
RewriteRule ^$ - [R=404,L]
В Notepad++ под эту задачу нужный макрос стандартными средствами записать не удалось, так что придется вручную добавлять в файле shortcuts.xml между тегами <Macros> и </Macros>. Добавлять при закрытом Notepad++.
Меню Макросы -> Начало записи. Потом вызываем меню поиска и для поиска атрибутов href в шаблон поиска вбиваем такую регулярку
href="\K[^"]+
Жмём искать далее и в тексте будет выделен найденый текст. Кликаем правой кнопкой по нему и в контекстном меню выбираем строчные. После жмём меню Макросы -> Остановка записи и многократный запуск.
Любопытно, а если с помощью mod_headers провернуть такую штуку
RequestHeader set Host site.ru
Правила mod_rewrite будут по-прежнему видеть какой домен запрашивал юзер и делать редирект если нужно, а вот php скрипт всегда будет получать в заголовках домен установленный директивой RequestHeader.
Ставить в самом начале файла сразу после RewriteEngine On
Заменить на: \L<$1>
Так это же фича Perl, а в редакторы обычно встраивают библиотеку PCRE и там такой фичи нету.
;13666839']RewriteEngine on
RewriteCond %{QUERY_STRING} ^up=
RewriteRule ^$ [R=404,L]
После шаблона в RewriteRule ожидается адрес, так что апач будет искать файл /[R=404,L] и флаг [L] останавливающий обработку апач здесь не увидит и если после этого правила есть RewriteRule .* index.php [L] то 404 ошибки не будет. В таких случаях на месте адреса достаточно дефиса.
В Notepad++ под эту задачу нужный макрос стандартными средствами записать не удалось, так что придется вручную добавлять в файле shortcuts.xml между тегами <Macros> и </Macros>. Добавлять при закрытом Notepad++.
Очистить результаты поиска.
Вызвать меню поиска в файлах.
Указать нужную папку и фильтр.
Шаблон поиска используем тот же href="\K[^"]+.
Смотрим на количество найденных результатов и указываем это число в меню многократного запуска макроса.
После сохранить все.
Или проверять переменную %{THE_REQUEST} "GET /?l=blablabla HTTP/1.1"
Такое вполне решается макросами.
Меню Макросы -> Начало записи. Потом вызываем меню поиска и для поиска атрибутов href в шаблон поиска вбиваем такую регулярку
Жмём искать далее и в тексте будет выделен найденый текст. Кликаем правой кнопкой по нему и в контекстном меню выбираем строчные. После жмём меню Макросы -> Остановка записи и многократный запуск.
Любопытно, а если с помощью mod_headers провернуть такую штуку
Правила mod_rewrite будут по-прежнему видеть какой домен запрашивал юзер и делать редирект если нужно, а вот php скрипт всегда будет получать в заголовках домен установленный директивой RequestHeader.
Так это правило и так работает для всех категорий.
Если имелось в виду не один товар из всех категорий, а все товары из всех категорий, то нужен шаблон ^catalog/[^/]+/[^/]+/$.
Адреса начинающиеся на /catalog/element/ так же попадают под этот шаблон и для них нужно исключение иначе будет бесконечная переадресация.
Исключение для /catalog/element/ можно сделать дополнительным RewriteCond
Или так
Ставить в самый верх сразу после RewriteEngine On
Если я правильно понял, то ищем цифру 7 или 8, за которой следуют десять цифр, которые могут быть разделены тире или пробелом.
Это описывается регулярным выражением [78](?:[- ]?\d){10}