############################################################################
RewriteEngine On
# Директива включает редиректы.
RewriteBase /
# Без директивы (.*) = /$1 будет /var/wwww/site/web/$1 с директивой = /$1
Options +FollowSymLinks
# Разрешает переход по символическим ссылкам.
ErrorDocument 404 /404.html
# 404
AddDefaultCharset windows-1251
# реально в 19 году 1251 кто-то использует?
############################################################################
#### Выбор основного зеркала (с www или без www) ####
############################################################################
# 1. Удалить www
RewriteCond %{ENV:HTTPS} on
#Если включен https
RewriteRule .* - [E=SSL:s]
#То создаем переменную ssl с текстом s
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
# Проверяем, содержит ли домен www в начале URL.
RewriteRule ^(.*)$ http%{ENV:SSL}://%1/$1 [R=301,L]
# Перенаправляем удаляем www
# 2. Добавить www
#RewriteCond %{ENV:HTTPS} on
#Если включен https
#RewriteRule .* - [E=SSL:s]
#То создаем переменную ssl с текстом s
#RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
# Если нет www в начале домена
#RewriteRule ^(.*)$ http%{ENV:SSL}://www.%{HTTP_HOST}/$1 [R=301,L]
#Подставляем www и https если он включен.
############################################################################
#### Перенаправляем протокол https на http ####
############################################################################
#RewriteCond %{HTTPS} on
# Проверяем наличие https в URL.
#RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# Перенаправляем протокол на http.
############################################################################
#### Перенаправляем протокол http на https ####
############################################################################
RewriteCond %{HTTPS} off
# Проверяем наличие https в URL.
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]
# Исключим обмен с 1С, ему требуется только 200
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Перенаправляем протокол на http.
############################################################################
#### Убираем index.php, если он есть в конце URL ####
############################################################################
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
# URL cодержит index.php в конце.
RewriteCond %{REQUEST_METHOD} =GET
# Выявляем GET запрос в URL (не POST).
RewriteRule ^(.*)$ %1/ [R=301,L]
# Удалить index.php из URL.
############################################################################
#### Убираем повторяющиеся слеши (/) в URL ####
############################################################################
RewriteCond %{THE_REQUEST} //
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteCond %{QUERY_STRING} !http(s|)://
# Убедимся что это не урл в GET
RewriteRule .* /$0 [R=301,L]
# Исключаем все лишние слеши.
############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку) ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$
# Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d
# И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
# Является файлом.
RewriteCond %{REQUEST_URI} ^(.+)/$
# И в конце URL есть слеш.
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Исключить слеш.
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл. ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
# Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
# Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
# В URL нет точки (файл).
RewriteCond %{REQUEST_URI} ^(.+)$
# В URL есть хоть один символы
RewriteRule ^(.*)$ $1/ [L,R=301]
# Добавляем слеш в конце.
############################################################################
#### Компрессия статического контента для гугл спид тест ####
############################################################################
<IfModule mod_deflate.c>
AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/svg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
</IfModule>
<IfModule mod_headers.c>
<filesmatch "\.(ico|flv|jpg|jpeg|webp|png|gif|css|swf|svg|woff|pdf)$">
Header set Cache-Control "max-age=31536000, public"
</filesmatch>
<filesmatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, private, must-revalidate"
</filesmatch>
<filesmatch "\.(pdf)$">
Header set Cache-Control "max-age=86400, public"
</filesmatch>
<filesmatch "\.(js|otf|ttf|woff|woff2)$">
Header set Cache-Control "max-age=31536000, private"
</filesmatch>
</IfModule>
############################################################################
#### Конец общей части, далее следует собственные директивы .htaccess ####
############################################################################
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl|png)$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?/ru/$1 [QSA,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.|)(.+)\.rukartina\.ru$ [NC]
RewriteRule ^(.*)$ https://%2.rakovgallery.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)uralkartina\.ru$ [NC]
RewriteRule ^(.*)$ https://ekb.rakovgallery.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^category/pejzazh/(.*)$ https://rakovgallery.ru/catalog/genre/peyzazh/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^category/gorodskoj-pejzazh/(.*)$ https://rakovgallery.ru/catalog/genre/gorodskoy-peyzazh/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^category/morskoj_pejzazh/(.*)$ https://rakovgallery.ru/catalog/genre/morskoy-peyzazh/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^category/abstrakciya/(.*)$ https://rakovgallery.ru/catalog/genre/abstrakciya/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^category/natyurmort/(.*)$ https://rakovgallery.ru/catalog/genre/natyurmort/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^category/syuzhetnaya-zhivopis/(.*)$ https://rakovgallery.ru/catalog/genre/syuzhetnaya-zhivopis/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^uslugi/portrety_na_zakaz/(.*)$ https://rakovgallery.ru/services/portrety-na-zakaz/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/gusel-nikov-evgenij-vasil-evich/(.*)$ https://rakovgallery.ru/artist/evgeniy-guselnikov/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/balahonov-dmitrij/(.*)$ https://rakovgallery.ru/artist/balahonov-dmitriy/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/krupp-stanislav/(.*)$ https://rakovgallery.ru/artist/stanislav-krupp/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/belaya-agata/(.*)$ https://rakovgallery.ru/artist/agata-belaya/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/saidov-aleksandr/(.*)$ https://rakovgallery.ru/artist/aleksandr-saidov/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/hohrin-il-ya-nikolaevich/(.*)$ https://rakovgallery.ru/artist/ilya-hohrin/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/pervushin-yurij/(.*)$ https://rakovgallery.ru/artist/pervushin-yuriy/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/shishkin-valerij/(.*)$ https://rakovgallery.ru/artist/valeriy-shishkin/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/marinova-anna/(.*)$ https://rakovgallery.ru/artist/anna-marinova/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/kushakov-alisher/(.*)$ https://rakovgallery.ru/artist/alisher-kushakov/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/suvorova-ol-ga/(.*)$ https://rakovgallery.ru/artist/olga-suvorova/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/pokidyshev_pavel_vasil_evich/(.*)$ https://rakovgallery.ru/artist/pavel-pokidyshev/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/terehov-evgenij-aleksandrovich/(.*)$ https://rakovgallery.ru/artist/evgeniy-terehov/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/reznichenko-nikolaj-grigor-evich/(.*)$ https://rakovgallery.ru/artist/nikolay-reznichenko/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/lipatova-alla/(.*)$ https://rakovgallery.ru/artist/lipatova-alla/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/korolenkov-vyacheslav-veniaminovich/(.*)$ https://rakovgallery.ru/artist/vyacheslav-korolenko/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/loskutov-evgenij/(.*)$ https://rakovgallery.ru/artist/loskutov-evgeniy/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/sidorova-zhanna/(.*)$ https://rakovgallery.ru/artist/sidorova-zhanna/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^searchworks/(.*)$ https://rakovgallery.ru/catalog/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^newworks/(.*)$ https://rakovgallery.ru/catalog/new/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^hudozhniki/(.*)$ https://rakovgallery.ru/artist/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^uslugi/(.*)$ https://rakovgallery.ru/services/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
RewriteRule ^(.*)$ https://rakovgallery.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.|)rukartina\.ru$ [NC]
nginx 80 --> 82 apache
nginx+ssl 443 -> 4443 apache +ssl
nginx 80 --> 82 apache
nginx+ssl 443 -> 80 apache + эмулировать что это https
server {
######################################################################
## Server configuration
######################################################################
listen *:443 ssl http2;
server_name 5job.ru www.5job.ru ;
root /var/www/5job.ru/web;
######################################################################
## Enable gzip for proxied requests and static files
######################################################################
# Enable gzip for proxied requests and static files
gzip on;
gzip_proxied any;
gzip_vary on;
gzip_http_version 1.1;
gzip_types application/javascript application/json text/css text/xml;
gzip_comp_level 4;
######################################################################
## SSL configuration
######################################################################
# recommended but not manditory directive
# leave commented out unless you know what it is doing
#more_set_headers 'Strict-Transport-Security: max-age=15768000';
ssl on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1h;
ssl_protocols TLSv1.2 TLSv1.1;
add_header Strict-Transport-Security "max-age=15768000" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
ssl_certificate /var/www/clients/client26/web28/ssl/5job.ru-le.crt;
ssl_certificate_key /var/www/clients/client26/web28/ssl/5job.ru-le.key;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
######################################################################
## Log configuration
######################################################################
#Все логи отключены
error_log /dev/null crit;
access_log off;
######################################################################
## 555 Еrror requires password password
######################################################################
# Дев сайты закрыты htpass login:dev pass:dev (второй кусок ниже)
error_page 555 = @pass;
location @pass {
auth_basic "Unauthorized";
auth_basic_user_file /var/www/dev_htpasswd;
proxy_pass https://127.0.0.1:4443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTPS YES;
}
######################################################################
## Errors send to apache2
######################################################################
# у апача своих алиасов куча, а так же некоторая статика отдается
# средствамси php, по этому все ошибки обрабатывать только apache2
error_page 401 403 404 405 500 502 503 = @fallback;
location @fallback {
proxy_pass https://127.0.0.1:4443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTPS YES;
}
######################################################################
## Locations configuration
######################################################################
#Отключаем логирование ошибок No such file or directory
## Disable .htaccess files
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}
##
location = /favicon.ico {
log_not_found off;
access_log off;
}
##
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
##
######################################################################
# сервисы на сайте phpmyadmin почта и letxencrypt
location /phpmyadmin/ {
deny all;
# поставить пароль на phpmyadmin
return 555;
root /usr/share/phpmyadmin/;
}
##
location /webmail/ {
rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
}
# letsencrypt
location /.well-known/acme-challenge/ {
alias /usr/local/ispconfig/interface/acme/;
default_type text/plain;
}
# static content
# Отдаем статику напрямую с nginx
location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
root /var/www/5job.ru/web;
access_log off;
expires 30d;
gzip_static on;
}
# default location
location / {
index index.php index.html index.htm;
proxy_pass https://127.0.0.1:4443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTPS YES;
######################################################################
## Dev site Protection Requests in location /
######################################################################
# Дабы дев сайты не индексировались поисковиками, принудительно
# Ставим пароли на них, все что начинается с dev,old. или домен ks03
if ($http_host ~* "^(dev|old|www.old|www.dev)\..*\..{2,8}$"){
return 555;
}
if ($http_host ~* "^.*\.ks03\.ru$"){
return 555;
}
proxy_set_header X-Forwarded-Proto https;
include /etc/nginx/locations.d/*.conf;
}
}
RewriteCond %{QUERY_STRING} !(^|&)(.+)($|&)
RewriteRule ^page\.php$ /page.php\?param [L,R=301]