Показано с 1 по 3 из 3

Тема: Из .htaccess в nginx

  1. #1
    Junior Member
    Регистрация
    01.08.2015
    Сообщений
    12

    По умолчанию Из .htaccess в nginx

    Доброго утра.

    Для оптимизации работы сайта посоветовали установить nginx (в связке с Apache).
    Сайт работает на безопасном протоколе (443/https/ssl).
    Однако, из-за редиректов на безопасный протокол, прописанных в .htaccess, после установки nginx начал осуществляться постоянный рерирект. Сам .htaccess, до установки nginx, работает оптимально.

    Пожалуйста, помогите мне перевести нижеследующие редиректы из .htaccess в один общий вариант для ngnix.conf (для server {} ) :

    PHP код:
    RewriteCond %{HTTPS} !=on
    RewriteCond 
    %{HTTP_HOST} ^(www.domain1.ru|www.domain2.com|domain2.com|domain1.ru) [NC]
    RewriteRule (.*) https://domain1.ru/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} ^(www.domain1.ru|www.domain2.com|domain2.com) [NC]
    RewriteRule (.*) https://domain1.ru/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} ^(.*).(domain1.ru|domain2.com) [NC]
    RewriteCond %!^www$ [NC]
    RewriteRule (.*) https://domain1.ru/ [R=301,L] 
    Суть в том, чтобы переадресовывать все вариации адресов domain1.ru и domain2.com (будь то поддомен, безопасный или небезопасный протокол) на https://domain1.ru{запрошенный_uri}.


    Служба поддержки сказала, что такой вариант (ниже) не подойдет.
    (p.s. тут я уже опустил жесткую переадресацию поддоменов на главную страницу сайта, как в .htaccess)
    PHP код:
    server {
        
    listen  80;
        
    server_name  www.domain1.ru  www.domain2.com  domain2.com  domain1.ru;
        
    rewrite https://domain1.ru$request_uri? permanent;
    }

    server {
       
    listen  443;
       
    server_name  www.domain1.ru  www.domain2.com  domain2.com  *.domain2.com  ~^(.+).domain1.ru$;
       
    rewrite https://domain1.ru$request_uri? permanent;


  2. #2
    Support team Аватар для usaafko
    Регистрация
    06.10.2013
    Сообщений
    2,384

    По умолчанию

    Цитата Сообщение от Vitassam Посмотреть сообщение
    Служба поддержки сказала, что такой вариант (ниже) не подойдет.
    Почему не подойдет? Сделайте так:
    Код:
    server { 
        listen  80; 
        server_name  www.domain1.ru  www.domain2.com  domain2.com  domain1.ru; 
        return 301 https://domain1.ru$request_uri; 
    } 
    
    server { 
       listen  443; 
       server_name  www.domain1.ru  www.domain2.com  domain2.com  *.domain2.com; 
       return 301 https://domain1.ru$request_uri; 
    } 
    server {
       listen 443;
       server_name domain1.ru
    }

  3. #3
    Junior Member
    Регистрация
    01.08.2015
    Сообщений
    12

    По умолчанию

    Спасибо большое службе поддержки моего сервера и вам!

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •