jkm

Рейтинг
120
Регистрация
20.02.2014

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]
SateClub:

server {
listen 80;
server_name "~^www\.(.*)$";
rewrite ^ http://$host$request_uri permanent;
}

server {
listen 80;
server_name site.ru *.site.ru;

Приоритет маски "*.site.ru" выше чем у регулярки http://nginx.org/ru/docs/http/ngx_http_core_module.html#server_name


При поиске виртуального сервера по имени, если имени соответствует несколько из указанных вариантов, например, одновременно подходят и имя с маской, и регулярное выражение, будет выбран первый подходящий вариант в следующем порядке приоритета:
1. точное имя
2. самое длинное имя с маской в начале, например “*.example.com”
3. самое длинное имя с маской в конце, например “mail.*”
4. первое подходящее регулярное выражение (в порядке следования в конфигурационном файле)


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} ^.+
RewriteRule ^$ /index.php [R=301,L,QSA]

Поменять на такой:

RewriteCond %{QUERY_STRING} ^co=

RewriteRule ^$ /index.php [R=301,L]

RewriteCond %{QUERY_STRING} ^ch=
RewriteRule ^$ /channel.php [R=301,L]
Эдуардoff:
Получилось наоборот - у /index.html обрезает .html а у записей /статья.html оставляет

Поставить редирект выше остальных правил и добавить 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'].

Всего: 749