RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$ RewriteRule . %1/%2 [L,R=301] RewriteCond %{THE_REQUEST} // RewriteRule .* /$0 [R=301,L]
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
//
нужно ограничить поиск чтобы не зациклило редирект.RewriteCond %{THE_REQUEST} ^[^?]+//
RewriteRule .* /$0 [R=301,L]
(?:email":\["|\G(?!\A)",")\K[^"]+
[^"]+@[^"]+(?<=email":\["[^\[\]]+)
./feed/$
RewriteCond %{REQUEST_URI} ./feed/$
RewriteRule ^.*$ https://example.com/v5dl/? [R=301,L]
RewriteRule /feed/$ https://example.com/v5dl/? [R=301,L]
(?!...)
$text = preg_replace(
'#\[url=(?!https?://site\.ru)\S*\](\[img.*?\]\S*\[/img\])\[/url\]#i',
'$1',
$text
);
$white_list = ['site3.ru', 'site4.ru'];
$text = '
[url=https://site1.ru/page][img]https://site1.ru/file.jpg[/img][/url]
[url=https://site2.ru/page][img]https://site2.ru/file.jpg[/img][/url]
[url=https://site3.ru/page][img]https://site3.ru/file.jpg[/img][/url]
[url=https://site4.ru/page][img]https://site4.ru/file.jpg[/img][/url]
';
$text = preg_replace_callback(
'#\[url=(\S*)\](\[img.*?\]\S*\[/img\])\[/url\]#i',
function ($m) use($white_list) {
$host = parse_url($m[1], PHP_URL_HOST);
if (in_array($host, $white_list))
return $m[0];
return $m[2];
},
$text
);
%{ENV:AVIF_CUSTOM_PATH}
%{ENV:variable}, where variable can be any environment variable, is also available. This is looked-up via internal Apache httpd structures and (if not found there) via getenv() from the Apache httpd server process.
RewriteEngine On
# префикс пути для avif-версий: /1.jpg -> /avif/1.jpg.avif
RewriteRule .* - [ENV=AVIF_CUSTOM_PATH:/avif]
# дебаг - заголовок отдастся, путь будет показан
Header set x-avif-custom-path %{AVIF_CUSTOM_PATH}e
# проверяю наличие и отдаю, если есть
RewriteCond %{DOCUMENT_ROOT}%{ENV:AVIF_CUSTOM_PATH}/$0.avif -f
RewriteRule ^.*\.(?:jpe?g|png)$ %{ENV:AVIF_CUSTOM_PATH}/$0.avif [NC,T=image/avif,L]
mod_rewrite запускает обработку запроса снова и снова, до тех пор, пока он не перестанет меняться.
Флаг [L] останавливает текущую итерацию обработки запроса. Однако если запрос был изменен теми RewriteRule, которые все-таки успели отработать, Apache запустит цикл обработки запроса заново с первого RewriteRule.
RewriteCond %{REQUEST_URI} !^/lechenie-diarei
RewriteRule . /index.php [L]
содержимое %{REQUEST_URI} поменяется на /index.php и Apache запустит цикл обработки запроса заново с первого RewriteRule.GET /path HTTP/1.1
RewriteCond %{THE_REQUEST} !^\S+\s/lechenie-diarei
RewriteCond %{THE_REQUEST} "! /lechenie-diarei"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} !^/lechenie-diarei
Пробовал добавить "RewriteCond %{REQUEST_URI} !^/new/"
/new/
.# remove slash
RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s]
RewriteRule /$ /%1 [R,L]
RewriteRule ^(.*)$ frontend/web/$1 [L]
RewriteRule ^new/ - [L]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond &%{QUERY_STRING} ^(?=.*&w=(\d+))(?=.*&h=(\d+))
RewriteCond %{DOCUMENT_ROOT}/resized/$1_%1_%2.$2 -f
RewriteRule ^(original/.+)\.(.+) /resized/$1_%1_%2.$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /resizer.php?path=$1 [L,QSA]
</IfModule>
RedirectMatch 301 ^/(.+)/\d+/?$ /$1/
RewriteEngine On
RewriteRule ^(.+)/\d+/?$ /$1/ [R=301,L]
RewriteCond %{THE_REQUEST} " /blog\?start=19 "
RewriteRule ^ https://drugoysite.ru/blog/? [L,R=301]
RewriteEngine on
RewriteCond %{THE_REQUEST} ^\S+\s/%3F [NC]
RewriteRule .* /$0 [R=301,L,QSA]
GET /%3Fs%3Dsanivite%26post_type%3Dproduct%26type_aws%3Dtrue?_openstat=dGVzdDsxOzE7 HTTP/1.1
^\S+\s/%3F
ловит все адреса начинающиеся с /%3F
%XX
?s=sanivite&post_type=product&type_aws=true
/?s=sanivite&post_type=product&type_aws=true&_openstat=dGVzdDsxOzE7
RewriteCond %{QUERY_STRING} !^$
на RewriteCond %{THE_REQUEST} \?
<IfModule mod_rewrite.c>
RewriteCond %{THE_REQUEST} \?
RewriteCond %{QUERY_STRING} !(^|&)srp=
RewriteCond %{QUERY_STRING} !(^|&)q=
RewriteRule ^(.+?)\.html$ https://%{HTTP_HOST}/$1.html? [L,R=301]
</IfModule>
<IfModule mod_rewrite.c>
RewriteRule ^(.+?)\.html(?!/amp/).+$ https://%{HTTP_HOST}/$1.html? [L,R=301]
</IfModule>
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} /pages/([^.]+)\.php [NC]
RewriteRule ^ /%1 [L,R=301]
RewriteCond %{QUERY_STRING} (?:^|&)id=([^&]+)
RewriteRule ^id$ /%1? [R=301,L]
RewriteRule ^(id_\d+)$ pages/id.php?id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/pages/$1\.php -f
RewriteRule ^([^.]+?)/?$ pages/$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]
[\x00-\x2F\x3A-\x40\x5B-\x60\x7B-\x7F]
[\x00-\x7F](?<![a-z\d])
(?![a-z\d])[\x00-\x7F]