Нет редиректа с ip вашего домена
На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.
Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта
Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.
1. Перенаправление доменов c синонима сайта на основной домен с кодом 301
Перенаправить запросы на domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]
Перенаправить запросы на www.domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]
Эти правила рекомендуется размещать в самом начале файла .htaccess.
2. Постоянное перенаправление с кодом 301
Redirect 301 /page.html http://www.domain.ru/new_page.html
Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %
RewriteRule ^period/$ http://domain.ru/ [L,R=301]
3. Переопределение страниц ошибок
#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html
Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге
Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:
User-agent: *
Disallow: /errors
/ваш_домен/docs/errors/.htaccess, в котором прописать
4. Постраничное перенаправление запросов на другой домен c кодом 301
Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:
Redirect 301 / http://www.newdomain.ru/
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]
5. Ограничение доступа к сайту по IP
Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3
Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3
Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:
Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3
Запретить доступ к сайту для всех:
6. Переопределение главной страницы сайта (индексного файла каталога)
Сделать главной страницей файл menu.html:
8. Запрет выдачи листинга каталога
В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:
Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).
10. Блокировка переходов со сторонних ресурсов
Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:
Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы
В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.
Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:
RewriteEngine on
RewriteCond %
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]
В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.
12. Перенаправление с HTTP на HTTPS и обратно
Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.
Перенаправить запросы на https://domain.ru
Перенаправить запросы на http://domain.ru
3. Диагностика ошибок
Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.
Как сделать редирект с помощью nginx с IP на доменное имя сайта?
Суть вопроса: сейчас при попытке ввести в браузере IP сервера, получаю ошибку не валидности ssl сертификата (все логично).
Что бы исправить ситуацию, хочу всех кто пытается зайти на сайт по IP переслать на сайт по доменному имени.
Для этого в /etc/nginx/sites-enabled/ добавил конфиг-файл для IP адреса.
Помогите пожалуйста найти ошибку и сделать редирект корректно.
Содержимое:
server <
listen 80;
listen [::]:80 default_server ipv6only=on;
server_name server_ip_adress; # www and your ip address
ssl_certificate /etc/letsencrypt/live/servername/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/servername/privkey.pem; # managed by Certbot
return 301 https://server_domain_name$request_uri;
>
# HTTPS — proxy all requests to the Node app
server <
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name server_ip_adress;
# Use the Let’s Encrypt certificates
ssl_certificate /etc/letsencrypt/live/servername/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/servername/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
return 301 https://server_domain_name$request_uri;
# Include the SSL configuration from cipherli.st
#include snippets/ssl-params.conf;
Примеры настройки перенаправлений на NGINX
Где настраивать редирект в Nginx
Эти файлы с параметрами, которые идентичны, вне зависимости от используемого дистрибутива Linux. Тем не менее, их расположение может отличаться:
Как применить настройки редиректа
Чтобы применить редиректы на веб-сервере Nginx, необходимо выполнить последовательно два действия:
Настройка редиректа
Ниже разберем два основных способа настройки редиректов для выбранных веб-страниц. Так как общепринятого мнения, какой из них является оптимальным, в практике не сложилось, в последующих примерах будут использоваться оба.
Способ №1
Первый представляет собой строку:
При настройке можно выбрать следующие флаги ( ):
Способ №2
По завершении редактирования файлов остается проверить, правильны ли они:
Чтобы их применить, необходима перезагрузка Nginx:
Первая команда используется в новых версиях Linux. Вторая — для устаревших версий и FreeBSD.
Практическое использование редиректов
Редирект с www на без www
Это наиболее распространенное перенаправление, которое позволяет направить весь трафик непосредственно на домен, минуя поддомены. Код редиректа:
Если необходимо получить противоположный эффект (перенаправление на «www» c «без www»):
Редирект на другой домен
Чтобы организовать перенаправление на другой сайт — например, после изменения адреса сайта — можно воспользоваться командой:
Второй вариант проще:
Редирект с http на https
Установить перенаправление с http на https (защищенный протокол SSL ) можно следующим образом:
Здесь при всех обращениях domain.ru по протоколу http сработает перенаправление на 443-порт с использованием 301 редиректа для склейки доменов.
Редирект на другой сервер
При необходимости использовать перенаправление на другой сервер всех запросов:
Здесь за прием запросов браузера и ответ на них отвечает веб-сервер Nginx. Их обработка выполняется сервером с IP-адресом 192.168.0.12 (порт 8080 ). Таким же образом осуществляется и перенаправление на другой Nginx.
Редирект с IP адреса на домен
Перенаправление домена без www на домен с www
В противном случае (редирект с www на без www) нужно использовать такое сочитание:
Перенаправление одного URL
Перенаправление на index.php
Сделать так, чтобы запросы из браузера обрабатывались через index.php можно таким образом:
Если же файл расположен в корневом каталоге, перенаправление на index.php указывается командой:
Перенаправление «после слэша» (/)
Следующий блок позволяет установить перенаправление «после слэша» для домена:
Это приведет к тому, что после ввода адреса http://domain.com/mail пользователь будет перенаправлен на https://mail-server.com/mail-panel.
Стоит добавить в приведенный пример знак « = », чтобы перенаправление относилось только к этому элементу (почта), а не ко всему, что начинается с «mail»:
Перенаправление с изменением типа файла
Еще один вариант будет полезным, когда ссылку на файл HTML нужно автоматически заменить ссылкой на файл PHP:
Несколько доменов, один каталог и один основной домен
Этот прием пригодится при наличии нескольких доменов. Для примера возьмем следующие домены:
Все эти домены указывают на один и тот же каталог на сервере. Соответственно, они отображают одну и ту же страницу/контент, хотя и при вводе разных адресов.
Не стоит забывать об исключении ошибки 404 («страница не найдена»), которая может возникнуть, если кто-то воспользуется ссылкой на товар/страницу с одного из альтернативных доменов. Решить эту задачу можно следующим способом:
Таким образом, все альтернативные адреса, отличные от «.ru», будут направлены на «new-address.ru», который является основным адресом.
Техническое обслуживание сайта
Следующий сценарий подойдет для сайта, который находится на техническом обслуживании. То есть в случае необходимости внесения изменений на сайте. При этом перенаправление будет работать в случае обращения к определенному IP-адресу.
Задача заключается в перенаправлении оставшихся посетителей на страницу, которая будет содержать информацию, подобную «На сайте ведутся технические работы…». Это можно осуществить следующим способом:
Вместо подстановочных значений «123.123.123.123» в примере следует вписать IP-адрес своего сервера.
Дополнительные настройки
Свой IP-адрес нужно исключить с редиректа, чтобы сохранить полный доступ к сайту:
Вместо 123.123.123.123 следует указать IP адрес своего сервера.
Благодаря примеру ниже можно обнаружить, существует ли такой файл (technical-break.html) на сервере:
Если да, перенаправление сработает, в противном случае сайт открывается в обычном режиме.
Работа над новой версией сайта с перенаправлением на старую
Перенаправить пользователей на старую версию:
Вместо «123.123.123.123» необходимо подставить IP адрес своего сервера (или адреса).
В случае, если возникает циклическое перенаправление на странице, следует добавить:
Перенаправление в зависимости от IP-адреса посетителя
Приведённый ниже способ предпочтителен с точки зрения SEO-оптимизации, так как при выполнении сценария в ссылках ничего не меняется:
При посещении сайта, сервер предоставляет владельца или администратору ресурса ( MY_IP ) файлы из каталога new-version («новая-версия»). Когда страница посещается «сторонним лицом», сервер открывает старую версию сайта.
Перенаправление в зависимости от IP-адреса посетителя и браузера
Ситуация становится немного сложнее, когда нужно нужно организовать подключение с использованием сразу двух условий:
К сожалению, Nginx не поддерживает правила объединения, поэтому здесь следует применить небольшой трюк:
Редирект в зависимости от файлов cookie
В то время как на рабочем месте часто используется статический IP-адрес, бывает, что работу над сайтом нужно проводить удалённо, с другого IP-адреса.
Хотя в таких ситуациях может помочь подключение через VPN, это не всегда возможно. Здесь применяется еще одно условие — проверка cookie:
Если в браузере будет сохранен cookie с контентом «text», то файлы нового сайта будут открываться без редиректа.
Очевидно, понадобится механизм для сохранения соответствующего куки в браузере. Здесь достаточно применить директиву PHP:
Она сохраняется на сервере (например, в файле cookie.php). Он добавляется в каталог со старой (для создания cookie) и новой страницей (обновления cookie до его истечения). Данный код выполняет следующую инструкцию:
В приведенном выше примере cookie действителен в течение 5 минут (300 секунд), после чего — если он не будет создан снова — вместо новой страницы снова будет отображаться старая страница. Когда новая страница готова, достаточно удалить эти несколько строк.
Nginx и CloudFlare
В случае использования CloudFlare существует высокая вероятность того, что редирект не будет работать правильно для выбранного IP-адреса, то есть сервис не будет его распознавать.
В этом случае в файле конфигурации виртуального хоста следует добавить:
Адреса в примере взяты из текущего списка адресов, используемых CloudFlare, размещенного на официальной странице https://www.cloudflare.com/ips/. Это список актуален на момент публикации, но может со временем меняться
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Переадресация с Домена на IP:порт. Как это можно сделать?
Что нужно: чтобы при переходе на example.com пользователя перекидывало на 1.1.1.1:10, рассматриваются все варианты, даже самые костыльные, неудобные и т.д.
По возможности, объясните простым языком, т.к в системном администрировании не силен.
Окей:
Имеется клиент игры, который подключается по умолчанию подключается на 20 порт (Есть возможность вписать ip вместе с портом, чтобы подключиться к определённому порту)
Есть сервер, который стоит по адресу 1.1.1.1:10
Есть домен example.com, купленный отдельно, и припаркованный к 1.1.1.1 (Припарковать к ip:port нет возможности)
Да, можно подключаться, например к 1.1.1.1:10 или к example.com:10, но хочется чтобы можно было подключаться к example.com
Zufero, Для комментирования ответа жмите линк «Комментировать» под ответом
Не нужно писать комментарий в форме для ответа
Оповещения о такой реплике не поступит автору ответа
Не нужно засорять секцию ответов «спасибовсем», «решено» и тп
Поднять nginx, настроить виртуальный хост в режиме прокси, как-то так:
Естественно, nginx должен быть доступен из интернета по IP, т.е. IP nginx должен быть белый реальный или на роутере должен быть такой IP и порт 80 нужно пробросить на внутренний IP сервера с nginx.
В настройках dns регистратора домена нужно создать A-запись для домена example.com, которая будет соответствовать белому IP, на котором доступен nginx из интернета.
Это невозможно в принципе. Никаких вариантов нет и быть не может.
Обращение к сетевым ресурсам идет по IP адресу.
Домен это просто имя связанное с IP адресом.
Вы делаете запрос к DNS по имени домена, он возвращает вам IP адрес.
Доменное имя не имеет никакого отношения к порту.
При переходе на example.com пользователя будет перекидывать на 1.1.1.1
А при переходе на example.com:10 пользователя всегда будет перекидывать на 1.1.1.1:10
Окей:
Имеется клиент игры, который подключается по умолчанию подключается на 20 порт (Есть возможность вписать ip вместе с портом, чтобы подключиться к определённому порту)
Есть сервер, который стоит по адресу 1.1.1.1:10
Есть домен example.com, купленный отдельно, и припаркованный к 1.1.1.1 (Припарковать к ip:port нет возможности)
Да, можно подключаться, например к 1.1.1.1:10 или к example.com:10, но хочется чтобы можно было подключаться к example.com
Есть сервер, который стоит по адресу 1.1.1.1:10
Благодаря «RewriteBase /» удобнее делать преобразования URI (убирается привязка к физическому расположению файлов сайта на сервере).
Давайте рассмотрим самые распространенные примеры:
1. Простой редирект
Для простого редиректа условия задавать не обязательно, только правило.
2. Реврайт без редиректа
Иногда требуется, чтобы был редирект без смены адреса, т.е. реврайт без редиректа. Для этого просто не указываем флаг редирект (R), и получаем желаемый результат, теперь по адресу news/happy получим news.html, а в адресной строке останется news/happy
3. Редирект с сохранением рейтинга страницы
4. Редирект для домена с www.site.com на site.com
Убираем у всех запросов вначале «WWW.»
5. Редирект для домена с site.com на www.site.com
6. Редирект с index.php (html,htm) на главную страницу
7. Редирект с index.html на папку (удаление из строки браузера index.html)
9. Чтобы вместо page.htm загружался файл page.html
10. Переезд с одного домена на другой
11. Редирект всех файлов в папке на один файл
12. Задание типа индексной страницы (php, html, htm и другие)
Указывается порядок загрузки типов индексного файла, лежащих в корне каталога.
13. Убираем у всех запросов в конце index.php. Переадресуем на страницу без index.php
Поисковые системы плохо относятся к дубрям страниц. Чтобы этого избежать нужно удалить (склеить) страницы вида https://ваш_домен/ и https://ваш_домен/index.php
14. Определение кодировки, в которой сервер «отдает» файлы
Варианты: KOI8-R, UTF-8, Windows-1251
15. Определение кодировки на загружаемые файлы
Варианты: KOI8-R, UTF-8, Windows-1251
16. Кэширование для всех типов файлов по времени доступа
17. Кэширование для всех типов файлов по времени изменения
18. Кэширование для определённых типов файлов
19. Главная страница без дублирования
20. Редирект страниц без слэша в конце URL на слеш
Чтобы предотвратить ситуацию с индексированием страниц www.site.com/about и www.site.com/about/ как разных, ставим следущий код: Со страниц без слэша будет установлен редирект на «слэшевые».
21. Принудительная постановка замыкающего слеша
Следующий код всегда будет добавлять слеш в адрес URL вашего сайта, что хорошо помогает в области SEO сайта.
22. Удалить слеш в конце
23. Удаляем «category» из URL
24. Редирект URL страницы с папки в корень сайта
Например страница лежит на сервере в site.com/category/blue.html, но надо чтобы страница работала по запросу site.com/blue.html
25. Редирект от GET параметров
Например, нужно что бы со страницы /?action=page&id=15 был редирект на /page/15/
26. Редирект на мобильную версию сайта
Допустим, что мобильная версия расположена на поддомене m.site.com. Будем переходить на мобильную версию только с главной страницы основного домена.
Первой строкой мы проверяем USER_AGENT, определяем что он относится к мобильникам. (эту строку я детально не проверял, взял на просторе интернета, возможно она не совсем корректная, или есть более универсальная строка. Но на моих мобильных устройствах этот пример работает)
Второй строкой проверяем что мы находимся на нужном домене (т.к. пример не универсальный)
Третьей строкой, мы проверяем, что находимся на главной страницы (без всяких параметров и прочего) и перенаправляем на поддомен.
27. Редирект на мобильную версию сайта (Универсальная версия)
28. Обработка ошибок Apache
29. Сохранение (загрузка) файлов вместо открытия
30. Переадресация с www.site.com/index.php?idc=4&marea=6 на www.site.com/
31. Редирект с поддомена на основной домен второго уровня
32. Изменяем переменные php и передаём обработку другому скрипту.
33. Убираем переменные php из запроса
(вырезаем из URI всё, что находится после знака вопроса)
34. Заперт входа на сайт
Запрещаем вход на сайт Интернет Експлореру (вернее, кто себя так определяет) и пользователям с определённого IP-адреса (xxx.xxx.xxx.xxx).
35. Закрываем от всех
36. Закрываем конкретный файл от всех
37. Разрешаем доступ только с одного ip
38. Запрещаем доступ с конкретных ip
39. Убираем из Урла (URL) расширение файла
php можно заменить другим расширением. Например: html, htm, shtml, asp
41. Запрещаем отображать содержимое директории, если нет индексного файла
Вы скорее всего хоть раз видели текст Index of и список файлов. Так происходит в том случае, когда в директории нет индексного файла (например index.php), а система предлагает выбрать файл для дальнейшего открытия. Минус этого заключается в том, что случайный пользователь может увидеть список и содержание всех файлов директории.
42. Перенаправление с HTTPS на http
43. Редиректы в зависимости от времени
Когда нужно применять уловки типа содержания зависящего от времени масса вебмастеров все ещё используют CGI скрипты которые производят редиректы на специальные страницы. Как это может быть сделано через mod_rewrite?
Есть много переменных названных TIME_xxx для условий редиректа. В связке со специальными лексикографическими образцами для сравнения STRING и =STRING мы можем производить редиректы зависящие от времени:
Это выдает содержимое foo.day.html при запросе URL foo.html с 07:00 до 19:00 а в оставшееся время содержимое foo.night.html.
44. Редирект в URL с подчеркивания в дефис
45. Редирект в URL с больших символов на маленькие
46. Массовый редирект новых файлов
Предположим вы перешли на новую систему ссылок на вашем сайте и все файлы оканчивающиеся на старый id должны быть средирекчены. Сначала создаем в базе таблицу, которая содержит старый id и новый URL для редиректа.
old_id INT new_url VARCHAR (255)