Содержание

301 Редирект в htaccess с http + www на https без www

301 редирект в создании сайтов и их же продвижении играет самую важную скрипку, ведь при криво настроенном перенаправлении ваш сайт с легкостью вылетит из поиска, раздублируются страницы по самое немогу, а также привнесет раздрай в вашем творении. И чтобы этого не произошло надо настраивать 301 Редирект в htaccess правильно! (с Домена на нужный Домен, со Страницы на правильную Страницу). 

А пока немного теории: 301 редирект это по сути простая 301-ая ошибка (301 Permament Redirect), которая возвращается сервером при запросе конкретного адреса вашего сайта, расшифровывается так: «Сайт на постоянной основе перенесен на такой-то адрес». Все пользователи, боты и другие инопланетные обитатели зашедшие на ваш сайт, будут перенаправляться по новому месту прописки, и для поисковых систем Яндекс, Гугл и других (произойдет склейка домена), весь вес сайта будет перенесен на новый адрес.

(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Примечание!
1) site.ru — нужно заменить на ваш адрес сайта
2) Эти две строчки: 

Options +FollowSymLinks
RewriteEngine On

Сразу прописаны в файле .htaccess в CMS Joomla 1.5 / 2.5 / 3.x / итд.
Однако если вы их не нашли в этом файле то, чтобы код работал, их необходимо прописать.

Также чтобы не забыть — Простые редиректы!

На другой сайт:

Redirect 301 / http://site.com

Страница на сайт:

Redirect 301 /katalog/tovar1.html http://drugoysite.ru/tovar2.html

Страница на страницу:

Redirect 301 /katalog/tovar-old.html /katalog/tovar-new.html

Я делаю сайты на Joomla 3, но эти редиректы подходят большинству сайтов на php с . (.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]

Для htaccess есть сборник сниппетов, на все случаи жизни: https://github.com/phanan/htaccess (en)

Также очень рекомендую прочитать статью про правильный переезд на https.
Да, переехать можно и неправильно.

Успехов! Сработал ли у вас редирект, напишите в комментариях.

Нашли опечатку или ошибку? Выделите её и нажмите Ctrl+Enter

Помогла ли Вам эта статья?

http для https редирект с www на без WWW в htaccess



Я пытаюсь перенаправить свой сайт с http на https и с www на не-www одновременно. Этот код от Андрона здесь работает, но с несколькими глюками.

(.*)$ https://%1/$1 [R=301,L]

В следующих ситуациях перенаправление работает безупречно и перенаправляет на версию non-www https :

domain.com
www.domain.com
www.domain.com/page

Однако, когда я ввожу domain.com/page или http://domain.com/page , я вижу только версию non-secure http non-www .

Как сделать так, чтобы все URLs перенаправлялись на secure https non-www -ю версию сайта?

apache .htaccess mod-rewrite redirect
Поделиться Источник hpb     22 января 2016 в 05:39

2 ответа


  • htaccess, что http для https редирект для www домена и дополнительный

    В настоящее время у меня есть перенаправление, которое работает для перенаправления всех HTTP страниц на соответствующие HTTPS страниц для http://www. https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]

    Поделиться Croises     22 января 2016 в 07:42


    Похожие вопросы:


    Использование htaccess для перенаправления http://www, http:/ / и https://www на https:

    На своем сайте я установил сертификат SSL на не www-версию домена. Я хотел бы использовать htaccess для перенаправления http www, http non www и https www на https:// У меня есть www для работы без…


    https редирект с без www на www и http

    Мне нужна комбинация перенаправлений для достижения следующих целей: Перенаправить http://example.com на http://www.example.com , а перенаправить https://www.example.com на https://example.com . Я…


    htaccess для перенаправления не-www на www с сохранением http & https

    Мой сайт только что получил сертификат EV SSL. В прошлом я перенаправлял запросы, не относящиеся к www, на www с помощью htaccess-и это хорошо работало.

    Но теперь, если я запрошу страницу https, я…


    htaccess, что http для https редирект для www домена и дополнительный

    В настоящее время у меня есть перенаправление, которое работает для перенаправления всех HTTP страниц на соответствующие HTTPS страниц для http://www. и http:// страниц следующим образом: # redirect…


    Редирект с без www на с www http https

    Я пытаюсь перенаправить наш старый сайт с http на https и с не-www на www одновременно. В настоящее время у нас есть много ссылок, которые мы приобрели за эти годы с не www & http версией сайта,…


    apache перенаправление http на https без www

    Попытка перенаправить весь трафик http и none- www на https (с www или без него). Использование файлов .htaccess и apache VirtualHost : VirtualHost файл <VirtualHost *:80> ServerName…


    .htaccess: перенаправление основного домена на https://www, поддомена на https:/ / (без www)

    Я знаю, что здесь существует бесконечное количество предоставленных . htaccess -решений, но ни одно из них не перенаправляет на https с www только для основного домена, а на https без www только для…


    http в https, так и без www. на www. перенаправление заголовка HSTS htaccess файл

    У меня есть новый сайт с пустым файлом .htaccess . Я хочу сделать следующее: перенаправление http на https перенаправление не- www. на www. Я не хочу перенаправлять его несколько раз, только один…


    Редирект без www на www WITHOUT заставляя https

    У меня есть клиент, у которого есть сайт http SEO’ed wordpress с https AdWords статическими html целевыми страницами (я знаю — не спрашивайте). Они хотят превратить все не-www в www. Я попробовал…


    перенаправление .htaccess без WWW на HTTPS не работает

    Редирект с .htaccess основного домена без www типа mydomain.com не работает, оставляя адрес в обычном http://, так что же не так с этим кодом? а как заставить перенаправить все адреса на https://?. ..

    Как настроить 301 редиректы в файле .htaccess

    В данном материале будут рассмотрены основные команды и правила настройки файла .htaccess. Следует учитывать, что правила нужно размещать после двух команд:

    • Options +FollowSymLinks

      RewriteEngine On

    • Все правила выполняются в прямом порядке их следования в файле .htaccess и правило, написанное позже, и будет выполняться позже.

    Комментарий

    Если требуется написать комментарий, то необходимо перед ним поставить #, тогда всё, что написано после этого символа не будет учитываться

    # комментарий

    301 редирект с одной статической страницы на другую

    Redirect 301 /contacts.html https://site.ru/ contacts

    *Новый адрес необходимо указывать полностью

    Переадресация через RewriteRule 

    RewriteRule ^dir /dir-new/$1 [R=301,L]

    Настройка редиректов с HTTP на HTTPS (для всех страниц)

    RewriteCond %{SERVER_PORT} ^80$ [OR]
    RewriteCond %{HTTP} =on
    RewriteRule ^(. — указание начала строки.

    $ — символ конца строки.

    \w — буква, цифра или подчёркивание _.

    \d — заменяет любую цифру.

    \D — заменяет любой символ, но не цифру.

    [0-9] — заменяет любую цифру.

    [a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.

    [A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.

    [a-zA-Z] — любая буква от a до Z в любом регистре.

    [a-Z] — то же самое.

    Для указания дополнительных задач и опций используются флаги. Их перечисляют в квадратных скобках через запятую:

    • L — флаг Last, указывающий приостановку формирования URL-адреса, так что после него строка считается окончательной;
    • NC — флаг NoCase, за счет которого отключается проверка регистра символов, если правило срабатывает;
    • R — флаг Redirect необходим для остановки изменения URL-адреса, он возвращает прежний результат. Обычно используется значение R=301, но встречаются и другие вариации для временных перенаправлений (302, MOVED TEMPORARY).

    Редирект с HTTP на HTTPS с помощью .htaccess

     

    Рано или поздно любой сайт нужно продвигать в поисковых системах. В последнее временя поисковые системы лучше ранжируют сайты, которые имеют ssl-сертификат и соответственно понижают в выдаче сайты без ssl. Когда вы решаетесь приобрести ssl сертификат, то Ваш сайт становится доступным по двум протоколам, http:// и https:// . И тогда возникает другая проблема. У вас фактически возникают 2 одинаковых сайта с одним и тем же контентом. А это может привести к понижению позиций вашего сайта в поисковой выдачи.
    Для того чтобы решить данную проблему нужно настроить 301 редирект “склейку” между двумя протоколами. Для этого нужно в корне Вашего сайта создать файл с именем .htaccess (обратите внимание на точку перед названием файла — это важно). В этом файле нужно будет прописать пару строчек специфического кода, который представлен ниже.
    То есть, пользователь, увидевший в поисковой выдаче, Ваш сайт и перешедший по нему, будет автоматически попадать не на сайт http://site.ru а на https://site.ru

     

    RewriteCond %{HTTPS} !on

    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

     

    Также нужно будет на Вашем сайте поменять все ссылки (на картинки, страницы, сайты, файлы и т.д.) там где есть протокол http:// на https://.

     

    Так же в google и yandex вебмастере нужно настроить основное заркало, для того чтобы  ваш сайт появлялся в выдаче только по протоколу https://. (подробнее об этом можно прочитать в этих статьях: настройка google вебмастера, yandex вебмастера)

    The following two tabs change content below. (.*)$ $1/ [L,R=301] # Добавляем слеш в конце.

    PS: если что все эти строки кода вставляются в файл .htaccess

    Как правильно настроить 301 редирект на сайте?

    301 редирект означает постоянное перенаправление страницы сайта на новый адрес.

    В чем отличие от использования временного редиректа

    Ко временным перенаправлениям относят 302, 303 и 307 редиректы. Их использование означает, что в будущем страница будет открываться по старому адресу.

    Важно!

    1. Поисковые системы не удаляют из индекса страницу, с которой происходит временный редирект.
    2. Поисковые системы не добавляют в индекс страницу, получающую временный редирект.

    Зачем нужен 301 редирект

    Есть масса причин, по которым необходимо настраивать переадресацию страниц:

    1. При переработке структуры адресов страниц.
    2. При смене символьного кода у страницы, например, при введении ЧПУ-адресов.
    3. При смене целевой страницы.
    4. При удалении страницы с сайта (в таком случае необходимо настраивать переадресацию, поскольку пользователь может попасть на нее по внешней ссылке).
    5. При доступе страниц с www и без него.
    6. При переезде домена.
    7. При переходе на протокол https.

    Как настраивать 301 редирект

    Ниже приведены наиболее часто используемые варианты для настройки 301 редиректов.

    Для отдельной страницы

    Чтобы сделать переадресацию со старой страницы на новую необходимо в файле .htaccess (находится в корневой папке сайта) прописать следующее правило:

    Redirect 301 %old_url% %new_url%

    Где %old_url% — старый адрес страницы без домена, %new_url% — новый адрес страницы с указанием домена и протокола.

    Без www

    Если сайт открывается с www, а вам необходимо, чтобы он был доступен без него, то необходимо прописать правило:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www. www\.correct-domain\.ru(:443)?$
    RewriteRule (.*) https://www.correct-domain.ru/$1 [R=301,L]

    Для виртуального хостинга с http на https

    RewriteCond %{HTTP:X-Forwarded-Protocol} !=https RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

    Как перенаправить HTTP на HTTPS и с www на не-www

    Раньше связь с веб-сайтами не была защищена, и все URL-адреса веб-сайтов начинались с www. В настоящее время большинство веб-сайтов защищены сертификатом SSL, и большинство из них также удалили www из своих URL-адресов.

    Все хорошо, но как убедиться, что старые ссылки не приводят к ошибке 404?

    В этой короткой статье я покажу вам, как убедиться, что все старые ссылки перенаправляются правильно, когда вы защищаете свой сайт или хотите удалить www из URL вашего сайта.

    Перенаправление ваших ссылок с http на https

    Сайты, которые существуют более двух лет, в большинстве случаев некоторое время работали без защиты SSL. Их URL-адрес по умолчанию начинается с http: //. Теперь на этих сайтах установлена ​​безопасность SSL, поэтому их URL по умолчанию начинается с https: //.

    Однако есть много ссылок, которые указывают на этот сайт, все еще использующий http: //, и многие люди по-прежнему используют http: // при вводе URL-адреса. Все эти ссылки необходимо перенаправлять на новый URL-адрес той же страницы.

    Вы можете создавать перенаправления для каждой страницы отдельно, но гораздо проще иметь в файле .htaccess правило, которое сделает это за вас автоматически.

    Примечание: не изменяйте НИЧЕГО в вашем файле .htaccess, если рабочая копия файла не будет на вашем рабочем столе. Любая опечатка в файле приведет к остановке вашего сайта.

    Приведенный ниже код берет любую ссылку http и перенаправляет ее на ее точный эквивалент, начиная с https: //.

      # 301 ПЕРЕПРАВИТЬ HTTP НА HTTPS
      

    Предупреждение: если вы используете этот код на сайте WordPress и у вас есть плагин, который перенаправляет http на https, отключите эту функцию или не используйте этот код. Это создаст цикл переадресации, и ваш сайт будет недоступен!

    Перенаправление ваших ссылок с https на http

    Хотя я не могу представить себе ситуацию, когда вы бы хотели сделать обратное, вот код для перенаправления
    ссылки https и перенаправления ее на ее точный эквивалент, начиная с http: //.

      # Перенаправить HTTPS на HTTP
    
    RewriteEngine On
    RewriteCond% {HTTPS} на
    RewriteRule (. *) Http: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]
      

    Перенаправление ваших ссылок с www на не-www

    Когда веб-сайты были новым явлением, все URL-адреса начинались с www, что означает World Wide Web . В настоящее время большинство веб-сайтов отбрасывают www и просто используют более короткий URL.

    Чтобы перенаправить все входящие ссылки, использующие www, на их эквиваленты без www, вы можете использовать этот код в своем .(. *) http: //www.%1/$1 [R = 301, NE, L]

    Перенаправление ваших ссылок с http на https и с www на не-www

    Приведенные выше фрагменты кода делают только одно — и делают это хорошо, — но вы также можете объединить код в одно комбинированное перенаправление.

    Приведенный ниже код перенаправляет любую ссылку http на ее точный эквивалент, начиная с https И в процессе перенаправляет любую ссылку www на ее эквивалент без www в URL:

      # 301 ПЕРЕПРАВИТЬ HTTP НА HTTPS И WWW НА НЕ-WWW
      

    Приведенные выше фрагменты очень удобны для обеспечения непрерывной работы всех URL-адресов сайта, но есть еще много удобных фрагментов, которые вы можете использовать в файле .htaccess , чтобы облегчить себе жизнь. Ознакомьтесь с множеством отличных фрагментов в ресурсах. Просто убедитесь, что у вас есть рабочая копия файла .htaccess на случай, если что-то пойдет не так.

    Как решить проблемы с перенаправлением? Вы используете фрагменты кода или плагины? Пожалуйста, поделитесь в комментариях.

    Ресурсы

    Apache перенаправляет www на не-www и HTTP на HTTPS (Саймон Карлетти)
    23 Великолепное перенаправление . htaccess с (www на Non-www) И (Non-www на www) (2daygeek)
    Фрагменты .htaccess (GitHub)

    Apache перенаправляет www на не-www и HTTP на HTTPS — Simone Carletti

    Растущее распространение HTTPS в качестве протокола соединения по умолчанию для веб-сайтов поставило несколько новых проблем перед разработчиками и системными администраторами, например, необходимость: консолидировать канонический домен путем перенаправления сайтов, не поддерживающих HTTP, на HTTPS, в дополнение к перенаправлению с www на имя хоста без www (или наоборот).

    Введение

    Здесь я показываю, как перенаправить сайт с www на не-www (или наоборот) и с HTTP на HTTPS, используя конфигурацию сервера Apache. Для большей ясности конфигурация перенаправит следующие имена хостов:

      http://example.com
    http://www.example.com
    https://example.com
      
    С

    по

    Я также покажу небольшое изменение для перенаправления не-www на версию с www, если вы предпочитаете www. Www \.[NC]

    Эти две строки являются условиями перенаправления, они используются для определения необходимости перенаправления запроса. Поскольку условия объединены оператором [ИЛИ], если любое из этих двух условий вернет истину, Apache выполнит правило перезаписи (перенаправление).

    Первое условие определяет, использует ли запрос URL-адрес, отличный от HTTPS. Второе условие определяет, использует ли запрос URL www . Обратите внимание, что я использовал www \. , а не www.(?: www \.)? (. +) $ [NC]

    Четвертая строка — это удобная строка, которую я использовал, чтобы не указывать имя хоста непосредственно в URL-адресе. Он соответствует HOST входящего запроса и раскладывает его на www часть (если есть) и остальную часть имени хоста. Мы будем ссылаться на него позже с % 1 в RewriteRule .

    Если вы знаете имя хоста заранее, вы можете улучшить правило, вставив URL-адрес и пропустив это условие (см. https: // www.% 1% {REQUEST_URI} [L, NE, R = 301]

    RewriteRule — это сердце перенаправления. Этой строкой мы говорим Apache перенаправить любой запрос на новый URL-адрес, состоящий из:

    • https: // www.
    • % 1 : ссылка на часть хоста без www
    • % {REQUEST_URI} : URI запроса без имени хоста

    Все эти токены объединены и представляют собой окончательный URI перенаправления. Наконец, мы добавляем 3 флага:

    • NE , чтобы не экранировать специальные символы
    • R = 301 для использования статуса перенаправления HTTP 301
    • L , чтобы остановить обработку других правил и немедленно перенаправить

    Как я уже упоминал, в моем примере используется дополнительная строка RewriteCond для извлечения имени хоста и избегания включения имени хоста в правило.https: //example.com% {REQUEST_URI} [L, NE, R = 301]

    Заключение

    В этой статье описана простая конфигурация для перенаправления запросов с www и без HTTPS на канонический домен сайта. Это очень полезно, чтобы избежать проблем с дублированием контента в поисковых системах и предложить улучшенный опыт для ваших пользователей.

    Если вы ищете в Интернете, есть десятки способов выполнить перенаправление в Apache, это лишь одна из возможностей, и она может не покрыть все возможные случаи.Надеюсь, с объяснением в разделе Как это работает вы сможете настроить его под свои нужды.

    .htaccess перенаправление на https и www

    Если ваш сайт обслуживает защищенные страницы по протоколу HTTPS (т.е. через SSL / TLS ), вам может потребоваться метод перенаправления всех HTTP-запросов на HTTPS. Затем, чтобы продолжить свои усилия по канонизации, вы также можете перенаправить все запросы www на не-www (или наоборот).Оба эти метода необходимы для обслуживания канонических версий ваших веб-страниц, так почему бы не объединить их в один простой фрагмент . www \.пример \ .com [NC] RewriteRule (. *) Https://example.com/$1 [L, R = 301]

    Как и раньше, поместите этот код в корневой каталог .htaccess вашего сайта. Вот что он делает:

    1. Проверяет наличие mod_rewrite
    2. Проверяет, выключен ли HTTPS, или если запрос включает www
    3. Если любое из условий соответствует, запрос соответствует требованиям и перенаправляется на https / не www адрес

    При размещении в корне.htaccess, этот метод охватывает всех запросов, обеспечивая полную канонизацию https / без www для вашего сайта. Не забудьте заменить два экземпляра example.com своим собственным доменным именем.

    Примечание: , если ваш сайт страдает от дублирования страниц из-за index.php , добавленного к запрошенным URL-адресам, ознакомьтесь с этим сообщением на WP-Mix.com, в котором объясняется, как удалить www и index. php из URL-адреса.

    Перенаправление на https и www

    Следующее.www \. [NC] RewriteRule (. *) Https: //www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]

    Этот код выполняет следующие действия:

    1. Первые две строки условно перенаправляют на https. Если для переменной HTTPS установлено значение off, запрос перенаправляется на https (см. Примечания ниже, если используется прокси).
    2. Вторые две строки перенаправляют на www. Если запрос / хост не начинается с www. , запрос перенаправляется на www.

    При размещении в корне.htaccess, этот метод охватывает всех запросов, обеспечивая полную канонизацию https / www для вашего сайта. Этот код не требует редактирования; это полностью plug-n-play.

    Примечания при использовании прокси

    Как объяснено здесь:

    «Когда за некоторыми формами проксирования, когда клиент подключается через HTTPS к прокси, балансировщику нагрузки, приложению Passenger и т. Д., Переменная % {HTTPS} никогда не может быть на и вызвать цикл перезаписи. Это потому что ваше приложение фактически получает простой HTTP-трафик, даже если клиент и прокси / балансировщик нагрузки используют HTTPS.В этих случаях проверьте заголовок X-Forwarded-Proto вместо переменной % {HTTPS} . «

    Итак, если вы используете какой-либо прокси-сервис или аналогичный, добавьте следующую строку в приведенный выше код:

      RewriteCond% {HTTP: X-Forwarded-Proto}! Https  

    Итак, окончательный результат при использовании прокси-сервера выглядит следующим образом:

      # Canonical https / www (при использовании прокси)
    
    RewriteCond% {HTTP: X-Forwarded-Proto}! Https
    Скидка RewriteCond% {HTTPS}
    RewriteRule (.www \. [NC]
    RewriteRule (. *) Https: //www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]
      

    Настройка Nginx SSL + принудительное перенаправление HTTP на HTTPS + принудительное перенаправление www на не-www в бесплатном плане Serverpilot (только с использованием файла конфигурации Nginx)

    Я создал веб-сайт WordPress, работающий на моем сервере Serverpilot / Digital Ocean. Успешно удалось:

    • Установите сертификат PositiveSSL вручную (из Namecheap)
    • Измените ИМЯ ПРИЛОЖЕНИЯ.conf для принудительного перенаправления HTTP на HTTPS и принудительного перехода с www на не-www

    Итак, все работает нормально, но я не уверен, правильно ли я настроил файл конфигурации Serverpilot Nginx. Мои вопросы:

    Что я сделал: Я реализовал правила 301 перенаправления в файле конфигурации Serverpilots Nginx (APPNAME.conf), поэтому перенаправления обрабатываются сервером наиболее эффективным способом. **
    Мой вопрос: действительно ли это лучший / самый быстрый способ?

    Что я сделал: Файлы конфигурации должны быть защищены от обновлений serverpilot, поэтому, когда serverpilot обновляет свою систему, никакие файлы не перезаписываются, никаких ошибок не возникает.Я следил за этой статьей Serverpilot
    Мой вопрос: Защищена ли моя конфигурация от перезаписи с помощью serverpilot?

    Что я сделал:

    Уменьшил количество редиректов. Все запросы (http // example.com, http://www.example.com, https://www.example.com) должны перенаправляться на https://example.com в макс. один шаг перенаправления. Я протестировал свой веб-сайт в средстве проверки кода состояния HTTP. Все перенаправления выполняются в макс. один шаг.

    Мой вопрос: Когда я тестирую, например, Google.nl в этом инструменте я вижу, что перенаправление с http://google.nl на https://www.google.nl выполняется в два этапа. Это почему? Следует ли мне также выполнить перенаправление с http://www.example.com на https://example.com за два 301 редиректа?

    Шаг 1. Установка сертификата SSL

    Я установил сертификат PositiveSSL на сервер, выполнив шаги 1–4 этого руководства: https://www.blogmehow.com/how-to-manually-install-ssl-on-serverpilot-free-plan-1331/

    Шаг 2: Создайте 3 серверных блока в APPNAME.файл custom.conf

    Я переименовал файл APPNAME.conf в файл APPNAME.custom.conf в этом /etc/nginx-sp/vhosts.d, открыл его и изменил так, чтобы он имел три серверных блока. Один для перенаправления http на https, один для перенаправления www-name https на no-www и один для фактической обработки запросов .:

      сервер {
        слушать 80;
        слушать [::]: 80;
        имя_сервера example.com www.example.com;
        возврат 301 https: //example.com$request_uri;
    }
    
    server {
        слушайте 443 ssl;
        слушайте [::]: 443 ssl;
        имя_сервера www.example.com;
    
    ssl включен;
    
    ssl_certificate /root/certs/APPNAME/APPNAME_nl.chained.crt;
    ssl_certificate_key /root/certs/APPNAME/ssl.key;
    
    ssl_session_timeout 1d;
    ssl_session_cache общий: SSL: 20 м;
    ssl_session_tickets off;
    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers на;
    
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCME-SHA384: SHA256: DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-SHA128-SHA: ECDHE-A128-SHA: ECDHE-A128-SHA RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-DHE-RSA-AES128-DSSA: AES128-SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA:! ANULL:! ENULL:! ЭКСПОРТ:! DES:! RC4:! 3DES:! MD5 :! ПСК ';
    
    ssl_stapling on;
    ssl_stapling_verify on;
    
    ssl_trusted_certificate / root / certs / APPNAME / APPNAME_nl.chained.crt;
    
    root / SRV / пользователи / serverpilot / apps / APPNAME / public;
    
    access_log /srv/users/serverpilot/log/APPNAME/APPNAME_nginx.access.log main;
    error_log /srv/users/serverpilot/log/APPNAME/APPNAME_nginx.error.log;
    
    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 X-Forwarded-SSL включен;
    proxy_set_header Схема X-Forwarded-Proto $;
    
    включить /etc/nginx-sp/vhosts.d/APPNAMEd/*.nonssl_conf;
    включить /etc/nginx-sp/vhosts.d/APPNAME.d/*.conf;
    
    возврат 301 https: //example.com$request_uri;
    }
    
    server {
    слушайте 443 ssl;
    слушайте [::]: 443 ssl;
    имя_сервера example.com;
    
    ssl включен;
    
    ssl_certificate /root/certs/APPNAME/APPNAME_nl.chained.crt;
    ssl_certificate_key /root/certs/APPNAME/ssl.key;
    
    ssl_session_timeout 1d;
    ssl_session_cache общий: SSL: 20 м;
    ssl_session_tickets off;
    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers на;
    
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCME-SHA384: SHA256: DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA: ECDHE-SHA128-SHA: ECDHE-A128-SHA: ECDHE-A128-SHA RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: DHE-DHE-RSA-AES128-DSSA: AES128-SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA:! ANULL:! ENULL:! ЭКСПОРТ:! DES:! RC4:! 3DES:! MD5 :! ПСК ';
    
    ssl_stapling on;
    ssl_stapling_verify on;
    
    ssl_trusted_certificate / root / certs / APPNAME / APPNAME_nl.chained.crt;
    
    root / SRV / пользователи / serverpilot / apps / APPNAME / public;
    
    access_log /srv/users/serverpilot/log/APPNAME/APPNAME_nginx.access.log main;
    error_log /srv/users/serverpilot/log/APPNAME/APPNAME_nginx.error.log;
    
    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 X-Forwarded-SSL включен;
    proxy_set_header Схема X-Forwarded-Proto $;
    
    включить /etc/nginx-sp/vhosts.d/APPNAME.d / *. nonssl_conf;
    включить /etc/nginx-sp/vhosts.d/APPNAME.d/*.conf;
    }
    
      

    Я надеюсь, что кто-нибудь найдет время, чтобы взглянуть на мою конфигурацию и сообщить мне, как я могу еще больше оптимизировать мою настройку с учетом моих целей.

    С уважением,

    Янв

    ** Согласно тому, что я нашел в этой статье, это наиболее эффективный и быстрый способ сделать 301 редирект: лучший способ сделать это — использовать три серверных блока: один для перенаправления http на https, второй для перенаправления https www-name на no-www и один для обработки запросов.Причина использования дополнительных серверных блоков вместо ifs заключается в том, что выбор сервера выполняется с использованием хэш-таблицы и выполняется очень быстро. Использование if на уровне сервера означает, что if запускается для каждого запроса, что является расточительным. Кроме того, захват запрошенного uri при перезаписи является расточительным, поскольку nginx уже имеет эту информацию в переменных $ uri и $ request_uri (без и со строкой запроса, соответственно).

    301 Перенаправляет на HTTPS (с WWW и без)

    Я привел примеры как для «www», так и для «без www».Я дал нейтральный код, который работает с любым сайтом. При желании вы также можете заменить «% {HTTP_HOST}%» своим доменным именем. У меня сейчас только переписывает под Apache htaccess. (Серверы NGINX могут попробовать это.)

    Добавьте этот код над строкой #BEGIN WordPress в вашем htaccess.

    Метод № 1

    Этот использует меньше кода, но имеет больше перенаправлений при использовании инструментов страницы. Он работает хорошо, но, возможно, немного менее эффективен, чем второй. (Я рекомендую этот метод всем, кто использует плагин Swift Performance.(. *) $ https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] # END Перенаправляет

    Другие способы перенаправления?

    Некоторые люди жаловались, что в моих примерах используется слишком много перенаправлений. В таком случае вы можете самостоятельно изучить информацию и попробовать другие методы перенаправления.

    Прочтите ниже и посмотрите, какой из них вам больше нравится (будьте осторожны, все они имеют свои последствия):

    Обеспечивает безопасную загрузку вашего сайта с помощью файла .htaccess — База знаний DreamHost

    Обзор

    После того, как вы добавили сертификат SSL в свой домен, DreamHost автоматически перенаправляет URL-адрес, который посетители используют для просмотра вашего сайта, с HTTP на HTTPS.S гарантирует, что ваше соединение зашифровано. Например:

    На вашем конце нет ничего, что вы должны обновить, чтобы заставить ваш сайт использовать безопасный URL. Однако в некоторых особых случаях вам может потребоваться создать свой собственный файл конфигурации для принудительного перенаправления с HTTP на HTTPS.

    Добавление пользовательского кода необходимо только в том случае, если вашему веб-сайту требуется определенный код для принудительного перенаправления . Если это так, вам нужно сначала отключить автоматическое перенаправление на вашей панели.

    После отключения вы можете продолжить добавление собственного файла .htaccess.

    На этой странице приведены примеры того, как это сделать в зависимости от того, как размещен ваш сайт. Просмотрите любую из следующих статей, чтобы узнать, как создать / отредактировать файл .htaccess на вашем сервере.

    Где следует создать файл .htaccess?

    Файл .htaccess должен находиться в основном каталоге вашего веб-сайта. Измените имя пользователя на ваше имя пользователя Shell и example.com на свой веб-сайт.Например:

     /home/username/example.com 

    Вы также можете подтвердить веб-каталог вашего сайта на панели.

    1. Перейдите на страницу управления доменами.
    2. Щелкните ссылку «Изменить» справа от своего домена в столбце «Веб-хостинг».
    3. Здесь вы увидите веб-каталог вашего сайта.

    Обратите внимание, что ваш FTP-клиент должен быть настроен на отображение скрытых файлов. В противном случае вы не увидите файл .htaccess.Подробнее о просмотре скрытых файлов см. В следующей статье:

    Что изменить в примерах ниже?

    Примеры, приведенные ниже, можно ввести в файл .htaccess точно так, как показано.

    Только если пример содержит URL-адрес, выделенный жирным шрифтом, вы можете изменить его на свой фактический URL-адрес. Например, если вы видите домен example.com , измените его на свое собственное доменное имя.

    Принуждение домена к безопасному обслуживанию с использованием HTTPS (для любого сайта)

    Следующее приводит к принудительной перезаписи любого HTTP-запроса с использованием https.(. *) $ https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301, NE] Заголовок всегда устанавливает Content-Security-Policy «upgrade-insecure-requests»;

    Если это не работает для вас, сначала проверьте окончания строк. Копирование / вставка из вашего веб-браузера в текстовый редактор может работать неправильно, поэтому после вставки в текстовый редактор вам следует удалить каждый разрыв строки и добавить его обратно (разрыв строки = клавиша возврата).

    Принудительное использование HTTPS в WordPress

    Если ваш файл .htaccess уже содержит код WordPress по умолчанию, введите следующий код выше или ниже этого кода.Никогда не вводите код внутри тегов комментариев, которые начинаются и заканчиваются на:

    .
    # НАЧАТЬ WordPress
    # КОНЕЦ WordPress

    Посетитель может ввести прямой URL-адрес HTTP на вашем сайте WordPress, даже если сертификат SSL активен. Чтобы заставить любой HTTP-запрос перенаправлять на HTTPS, вы можете добавить код в свой файл WordPress . (.https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301, NE] Заголовок всегда устанавливает Content-Security-Policy «upgrade-insecure-requests»;

    Поиск и устранение неисправностей

    Cloudflare

    Если вы включили Cloudflare на панели DreamHost, ваш сайт должен использовать субдомен www. Убедитесь, что в вашем файле .htaccess нет перенаправления на версию вашего URL без www. Если это так, и вы используете Cloudflare, вы можете столкнуться с ошибкой «Слишком много перенаправлений» в вашем браузере.

    WordPress

    Это также может быть проблемой для WordPress, поскольку для правильной работы требуется, чтобы URL-адреса в базе данных либо использовали, либо не использовали www.Для получения дополнительных сведений см. Следующую статью:

    Ошибка бесконечного перенаправления

    Просмотрите следующую статью, если после внесения этих изменений вы видите циклическое перенаправление вашего сайта.

    • Ошибка WordPress «слишком много перенаправлений»

    Устранение предупреждений о смешанном содержимом

    Даже если ваш сайт правильно перенаправляет на защищенный URL-адрес, возможно, браузер по-прежнему выдаст предупреждение, указывающее, что некоторые ресурсы, такие как ссылки, указывают на незащищенную версию.Вы можете добавить дополнительный код в файл .htaccess для устранения этих предупреждений. Подробнее см. В следующей статье.

    См. Также

    Как принудительно перенаправить Http на Https и без www на www

    В этой статье мы покажем вам, как легко принудительно перенаправить ваш веб-сайт с http на https и с не-www на www в вашей cPanel без необходимости технических знаний — это означает, что это может сделать любой, у кого есть доступ к cPanel.
    Мы предположим, что у вас уже установлен SSL на вашем сервере, и мы быстро покажем вам, как проверить, установлен ли у вас AutoSSL и включен ли он в вашей cPanel.

    Мы собрали для вас короткое видео, показывающее, как именно выполнять эти перенаправления, чтобы ваш веб-сайт всегда разрешался с https://www.yourdomain.ca, а не имел варианты вроде:

    • yourdomain.ca
    • www.yourdomain.ca
    • http://yourdomain.ca
    • https://yourdomain.ca
    • https://www.yourdomain.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *