RewriteRule ^services/kompleksnoe_proektirovanie/$ https://site.com/concurrent-engineering [R=301,L] RewriteRule ^services/kompleksnoe_proektirovanie/OVOS/ https://site.com/concurrent-engineering/ovos [R=301,L] RewriteRule ^services/ekologicheskoe_proektirovanie/ekologicheskoe_proektirovanie/dlya_deystvuyushchikh_pedpriyatiy/dogovor_vodopolzovaniya\.html$ https://site.com/environmental-consulting/water-use-agreement [R=301,L]
Ставить выше правила RewriteRule ^index\.php$ - [L]
Vitaly2012, там требуется как минимум Visual C++ Redistributable for Visual Studio 2015
vcruntime140d.dll
ucrtbased.dll
$content=preg_replace('#<h2.*?\K<h2#s','<p style="text-align: center;">'.$ads.'</p><h2',$content,1);
map $uri?$args $my_expires { default 30d; ~\?nocache$ epoch; ~^/download/cache/ 1h; } server { location ~ ^/download/ { expires $my_expires; }
Для домен.укр нужен punycode. Будет что-то вроде xn--d1acufc.xn--j1amh.
RewriteEngine On Options +FollowSymlinks RewriteCond %{HTTP_HOST} ^(www\.|)xn--d1acufc\.xn--j1amh$ [NC] RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L] RewriteRule ^category/(.*) /cat.php?name=$1 [L,QSA]
Приоритет маски "*.site.ru" выше чем у регулярки http://nginx.org/ru/docs/http/ngx_http_core_module.html#server_name
server { listen 80; server_name "~^www\.(?<domain>.+)"; return 301 http://$domain$request_uri; } server { listen 80; server_name "~(?:^|\.)site\.ru$";
Или писать полный список поддоменов.
map $host $domain { ~*^www\.(.+) $1; } server { listen 80; server_name www.site.ru www.sub1.site.ru www.sub2.site.ru www.sub3.site.ru; return 301 http://$domain$request_uri; } server { listen 80; server_name site.ru *.site.ru;
Поменять на такой:
RewriteCond %{QUERY_STRING} ^co= RewriteRule ^$ /index.php [R=301,L] RewriteCond %{QUERY_STRING} ^ch= RewriteRule ^$ /channel.php [R=301,L]
Поставить редирект выше остальных правил и добавить RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{REQUEST_URI} !/index\.html$ RewriteRule ^(.*)\.html$ /$1 [R=301,L]
Ну или проверять %{THE_REQUEST}
RewriteCond %{THE_REQUEST} " ((?>[^ ?]*/)(?!index\.html)[^ ?]+)\.html" RewriteRule \.html$ %1 [R=301,L]
RewriteCond %{REQUEST_URI} !/index\.html$ RewriteRule ^(.*)\.html$ /$1 [R=301,L]
Или
RewriteCond /$1 !/index$ RewriteRule ^(.*)\.html$ /$1 [R=301,L]
Возможно, это правило конфликтует с какими-то другими RewriteRule. Редиректы нужно ставить в самое начало файла.
Или там есть реверс прокси, который исправляет запрос и апач получает не исходный /////////, а уже нормальный /. Стоит проверить, что приходит в $_SERVER['REQUEST_URI'].