Обсуждение .htacces общие правила, примеры регулырных выражений

Код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
 
ИМХО. Частенько бывает бесполезно ковырять .htaccess, если сайт nginx'ом отдаётся. Ведь .htaccess служит только апачу. Так, что есть смысл такой же топик по nginx'у сделать.

Вставлю свои пять копеек:

Редирект с удалённой страницы на новую для ускоренной переиндексации материала и перенаправления посетителей со старой страницы с материалом на новую:

Код:
Redirect 301 /staraya-stranitsa.html https://vash-sait.ru/novaya-stranitsa.html[code]

Добавление заголовка Vary Accept-Encoding к отдаваемым статическим файлам (Работает если установлен модуль апача mod_headers:(
Код:
<IfModule mod_headers.c>
   <FilesMatch "\.(js|css|xml|gz|swf|ico|woff|ttf|otf|eot|svg)$">
     Header append Vary Accept-Encoding
   </FilesMatch>
</IfModule>

Альтернативный метод редиректа на https с http, если остальные не работают или отдают 500-ю ошибку:
Код:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Бан подсети IP-адресов (от плохих ботов)
Код:
Order Allow,Deny
Deny from 109.207.13.0/109.207.13.255
 
Последнее редактирование:
Редирект с www почему-то не работает, получаю 403 ошибку на ngix
 
Редирект с www почему-то не работает, получаю 403 ошибку на ngix

Если у вас сервер или vds, и сайт работает на nginx без апача, то как вариант - редирект через конфиг nginx:
Код:
server {
       # ...
    server_name "~^www\.(.*)$" ;
    return 301 $scheme://$1$request_uri;
}

Или так:
Код:
server {
  server_name www.example.com;
  rewrite ^(.+)$ http://example.com/$1 permanent;
}
Или так:
Код:
server {
    #...
    if ($host ~* www\.(.*)) {
        set $host_without_www $1;
        rewrite ^(.*)$ http://$host_without_www$1 permanent;
    }
}
 
Последнее редактирование:
Всем привет!
Нужна помощь с 301-ым редиректом.
Поменялась структура сайта, удалён DJ Catalog с продуктами и категориями.

Эта часть работает:


Код:
Redirect 301 /old-category/old-product-subcategory/product /new-category/new-subcategory
Redirect 301 /old-category/old-subcategory /new-category?params
Redirect 301 /some-old-cat /new-cat/new-sub-cat


А вот здесь появляется "петля" или ошибка `The page isn’t redirecting properly error`
Код:
RewriteRule ^(old-category/). /new-cat/new-subcat [R=301,L]
      оба не работают
RedirectMatch /old-category/.* /new-cat/new-subcat
Redirect 301 /old-category /new-cat/new-subcat
 
Последнее редактирование:
Назад
Сверху