Похоже nginx сам раздает статику и запрос к apache не доходит.
Можно попробовать перенести все страницы в папку и после правил для редиректа добавить такие правила
RewriteCond %{DOCUMENT_ROOT}/folder%{REQUEST_URI} -f RewriteRule shtml$ /folder%{REQUEST_URI} [L]
Дело в том что директивы Redirect, RedirectMatch, RedirectPermanent относятся к mod_alias.
site.ru/path?query
mod_alias позволяет сравнивать с шаблоном поиска только /path, т.е. нету возможности проверить, что находится после знака вопроса.
Решить данную задачу можно средствами mod_rewrite.
Шаблон поиска RewriteRule сравнивается только с path, а GET параметры следует искать в %{QUERY_STRING}.
Чтобы при редиректе отбросить %{QUERY_STRING} нужно добавить в конце "?".
RewriteCond %{QUERY_STRING} =option=com_lite&pdoc=info_center&Itemid=53 RewriteRule ^index\.php$ http://newdomain.ru/about/personal.html? [R=301,L]
Ну и конечно ставить правила в самом верху сразу после строки RewriteEngine On.
RewriteCond %{THE_REQUEST} " /index\.php" RewriteRule ^ http://site.ru/? [R=301,L]
Например так:
$str ='{"text_1":"2B","text_2":null,"text_3":"RT","text_4":null,"text_5":"VG","text_6":null,"text_7":false,"text_8":0,"text_8":["D1"]'; preg_match_all('~"text_[35]":"([^"]+)~', $str, $matches); var_dump($matches);
Восклицательный знак там неспроста это ж факториал
preg_match_all('/<(?!iframe)[^>]+?src=["\'][^"\'>]+/i', $text, $data );
Примерно так
RewriteCond %{THE_REQUEST} " /\?video=(\S+)" RewriteRule ^ img/gallery/test-folder/_notes/1/video.php?v=%1 [L]
Ставить выше правил для ЧПУ вроде таких RewriteRule .* index.php [L]
Подойдет ли такой вариант
[^h]++|http://[^\s"']++\K|h
https://regex101.com/r/qU2dV5/7
RewriteEngine OnOptions +FollowSymLinksRewriteBase /RewriteCond %{THE_REQUEST} " /(news\.php|novosti[ ?])"RewriteRule ^ novosti/ [R=301,L]RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^novosti/$ news.php [L]
Конструкция (?!\[/url\]).)+ захватывает по одному символу, пока не встретит .
https://regex101.com/r/uG2yC2/1
$regex = '~\[url\](((?:(?!\[/url\]).){25})(?:(?!\[/url\]).){11,}(?<=(.{10})))\[/url\]~';$text = preg_replace($regex, '<a href="\1">\2...\3</a>', $text);