- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, столкнулся с проблемой редиректа. На сервере по средствам фреймворка, для пользователей создаются поддомены вида user.example.com. Т.к. пользователей много то, для отлавливания этих поддоменов в переменную server_name и обрезания www используется регулярное выражение, в общем, у меня не выходит правильно вернуть адрес. Как хотелось бы, чтобы оно заработало:
Если пользователь вводит адрес типа (https://) http://www.user.example.com его должно редиректить на https://user.example.com
А при обращении к (https://) http://www.example.com перенаправляло на https://examle.com, а не на страницу несуществующего пользователя www.
Привожу свой конфиг, до настройки SSL он справлялся со своей задачей.
SSL должен работать на всех поддоменах подписан он для *.example.com
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 80 ;
server_name ~^www\.(\w+\.example\.com)$;
return 301 http://$1$request_uri;
}
server {
server_name example.com ~^\w+\.example\.com$;
root /var/www/htdocs/;
index index.php;
include /etc/nginx/templates/default;
include /etc/nginx/templates/php;
}
-----
Пробовал изменить конфиг, www обрезается и добляется hhtps:// , но теперь если зайти на (http, https) user.example.com в адресе появляется правильный адрес вида https://user.example.com , но в итоге отображается главная страница сайта example.com, а не страница пользователя:
server {
listen 80;
server_name "~^(www\.)?(.*)$" ;
return 301 https://$2$request_uri ;
}
server {
listen 443 ssl;
server_name example.com; # По всей видимости, здесь должно быть что-то другое.
keepalive_timeout 60;
ssl_certificate example.crt;
ssl_certificate_key privatkey.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
...}
Если изменить первую часть конфига, то www не обрезается, и не добавляется https, зато отображается страничка пользователя на его личном поддомене.
server {
listen 80 default_server;
server_name ~^www\.(\w+\.example\.com)$;
return 301 https://example.com$request_uri;
}
Создаете конфиг для www.*.example.com
В нем берете регексп по вилдкарду и делаете регидект на $1.example.com
А для www.example.com ставьте еще один конфиг, который будет редиректить на example.com
Спасибо Андрей за наводку, к сожалению пока что не удалось настроить всё, ещё и браузер запоминает редирект, тяжело его сбросить.
Пока что дошёл до такого конфига вроде адрес в адресной строке изменятся, и добавляется префикс https, но отображается главная страница example.com вместо страницы пользователя.
server {
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 80;
server_name ~^www\.(\w+\.example\.com)$; ( пробовал разные регулярки в них я не разбираюсь к сожалению "~^www\.(.*)$" "~^(www\.)?(.*)$" )
return 301 $scheme://$1.example.com; (return 301 https://1$.example.com)
}
server {
listen 443 ssl;
server_name example.com; (www.*example.com , *.example.com) пробовал разные варианты
keepalive_timeout 60;
ssl_certificate example.crt;
......
}
http://rubular.com/ - тут можно протестировать свои регулярки