RewriteCond %{THE_REQUEST} \\x22,RewriteRule ^ noimage.jpg [L]
Метасимвол ^ совпадает в начале строки. Нужно или убрать его или добавить (?:tag|archive|2014)/ или [^/]+/.
RewriteRule /content-page/$ /content-page.html? [R=301,L] RewriteRule ^[^/]+/content-page/$ /content-page.html? [R=301,L] RewriteRule ^(?:tag|2014|archive)/content-page/$ /content-page.html? [R=301,L]
Может, ставили в конец файла. После RewriteRule .* index.php [L] это уже работать не будет.
Попробуйте ставить в начало файла сразу после RewriteEngine On
Редирект на главную страницу
RewriteCond %{HTTP_USER_AGENT} Database RewriteRule ^ /? [R=301,L]
Ошибка 403 "Доступ запрещен"
RewriteCond %{HTTP_USER_AGENT} Database RewriteRule ^ - [F,L]
RewriteCond %{THE_REQUEST} " /images/\?v=2012-08-25_rq4wrmeadhxu3mf6y5qlijngc.png " RewriteRule ^ /images/index.php [R=301,L]
Или так
RewriteCond %{QUERY_STRING} =v=2012-08-25_rq4wrmeadhxu3mf6y5qlijngc.png RewriteRule ^images/$ /$0index.php [R=301,L]
Но ведь там отчетливо видно, что редирект срабатывает.
В адресной строке как раз http://сайт.ru/урл/ только с добавлением лишних параметров "?a=урл2/pages/id_12".
Такое происходит при одновременной работе mod_alias и mod_rewrite.
Т.е. в правилах у вас как-то так
Redirect 301 /урл2/pages/id_12 http://сайт.ru/урл/ RewriteRule (.*) index.php?a=$1 [L]
К тому времени как mod_alias будет выполнять редирект на http://сайт.ru/урл/ mod_rewrite уже выполнит RewriteRule и допишет лишние параметры "?a=урл2/pages/id_12".
Поэтому тут лучше обойтись без mod_alias и делать редирект средствами mod_rewrite.
RewriteRule ^урл2/pages/id_12$ http://сайт.ru/урл/ [R=301,L]
Ну и ставить его выше других правил сразу после RewriteEngine On
Возможно, там перед Apache другой сервер принимает поключение по обоим протоколам, а на Apache проксирует запрос уже только по HTTP.
Тогда обычно добавляется заголовок X-Forwarded-Proto или X-Forwarded-SSL
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC,OR] RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC] RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} " /index.php\?option=com_content&task=view&id=(\S+) " RewriteRule ^ http://site.ru/index.php/%1? [R=301,L]
Если так важны кавычки, то в этом случае удобнее всё-таки preg_replace_callback. Можно целиком захватить строку в кавычках
(['"]).*?\1
или
('[^']*'|"[^"]*")
И далее внутри callback функции обрабатывать как захочешь.
Да ладно :)
$txt = <<<EOF в последовательностях вида src="qqq www ee" и href="fewfwe e fe" и заменяет src="jhbgsc sdhjgsj hgj" EOF; $txt = preg_replace('%(?:src|href)="[^ "]*\K |\G(?!\A)[^ "]*\K %i', '_', $txt); echo $txt;
https://regex101.com/r/gD1sF8/1