- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
По мере необходимости пришлось перейти на nginx на впс стояла ispmanager поскольку в ней особо не силен поставил как есть (просто переключил в настройках PHP в режиме FastCGI (Nginx + PHP-FPM))
Возникла проблема (возможно и была до этого) сайт открывается по всем поддоменам 1.site.ru ww.site.ru asdaf.site.ru любое значение до точки работает как дубль сайта. Сайт должен открываться только на site.ru Все остальное желательно редиректить на страницы без поддомена либо вообще на site.ru/error404.php
Как можно сие убрать или хотя бы закрыть от индексации. Спасибо.
Гугл подсказывает что можно использовать default_server
Добавить в конфиг нужного сайта
У меня никаких isp нет, поэтому не знаю как он размешщает конфиги
Обычно /etc/nginx/sites-available/
А еще вариант и мне он нравится больше. я его использую для редиректа с www
Но должен и для субдоменов работать
Это нужно добавлять отдельной секцией выше основного домена
Ваш вариант почему то не работает. Может что то не туда пишу.
Сейчас нашел способ:
if ($host = 'www.example.com') {
rewrite ^(.*)$ http://example.com$1 permanent;
}
if ($host = 'm.example.com') {
rewrite ^(.*)$ http://example.com$1 permanent;
}
Вроде работает но только вручную приходится для каждого субдомена запись создавать.
if ($host = '*.example.com') {
rewrite ^(.*)$ http://example.com$1 permanent;
}
Такой вариант работать не хочет. Где то косячу.
Safronov, а покажите ваш нжинкс целиком?
#user 'siteru' virtual host 'site.ru' configuration file
server {
server_name .site.ru www.site.ru;
charset UTF-8;
disable_symlinks if_not_owner from=$root_path;
index index.php;
autoindex off;
root $root_path;
set $root_path /var/www/siteru/data/www/site.ru;
error_log /dev/null crit;
error_page 404 http://site.ru/error404.html;
if ($host = 'www.site.ru') {
rewrite ^(.*)$ http://site.ru$1 permanent;
}
if ($host = 'm.site.ru') {
rewrite ^(.*)$ http://site.ru$1 permanent;
}
rewrite ^/index.html /index.php;
rewrite ^/search.html /search.php;
rewrite ^/error404.html /error404.php;
rewrite ^/contacts.html /contacts.php;
rewrite ^/news.html /news.php;
rewrite ^/registration.html /registration.php;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/site.ru/*.conf;
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
# Запрещенные папки
location ^~ /blocks/ {
deny all;
}
location ^~ /functions/ {
deny all;
}
location @fallback {
access_log off ;
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f site@yandex.ru";
fastcgi_pass unix:/var/www/php-fpm/siteru.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
ssi on;
gzip on;
gzip_comp_level 2;
access_log off ;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
listen 00.000.00.000:80;
}
server {
server_name site.ru;
charset UTF-8;
disable_symlinks if_not_owner from=$root_path;
gzip on;
gzip_comp_level 2;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
index index.php;
root $root_path;
set $root_path /var/www/siteru/data/www/site.ru;
access_log off ;
error_log /dev/null crit;
listen 00.000.00.000:80;
include /etc/nginx/vhosts-includes/*.conf;
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f site@yandex.ru";
fastcgi_pass unix:/var/www/php-fpm/siteru.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
ssi on;
}
Домен и ip затер
Конфиг создавался автоматом при переходе из apache тем же самым ispmanager по этому там мрак.
Висит два сайта на обоих конфиги разные но проблема одна и фактически решается одним способом.
Ваш вариант почему то не работает. Может что то не туда пишу.
Такой вариант работать не хочет. Где то косячу.
А сам nginx рестартуете? он конфиги только при рестарте демона компилит.
А так же возможно используется конфигурация не того файла, что вы правите.
Safronov,
И как вы вставляли мой код? Он должен идти отдельным блоком server{...} выше основной части.
А вообще, могли бы потрудиться и выложить в читабельном виде, чтоб не разбираться в ошибках и четко видеть что куда относится. Для того отступы есть)
Рестартую обязательно. В isp конфиг указывается в настройках домена сложно перепутать, вот только под nginx все как то кривовато работает.
Код вставлял в самое начало после строчки
#user 'siteru' virtual host 'site.ru' configuration file
Выложил бы в удобном виде если б понимал что к чему в этом же виде говорю же работал с апатчем вынужден был перейти на nginx Вот и пытаюсь разобраться. Что то уже разобрал с чем то проблемы непонятного вида.
Safronov, Я тоже не сильно знаток, но синтаксис стандартный, как я понимаю.
Меня у вас, например, смущает 3-я строка, а именно
Пусть знатоки поправят, но это показывает как раз открытие любого поддомена во прямому адресу, без переадресации, поэтому все ваши условия, что идут ниже - не работают уже.
Попробуйте оставить только
Ну и блоки условий вроде надо размещать выше и отдельной секцией.
Например.
Хотелось бы, чтоб знатоки поправили.
А про Апач, имхо, пора и забывать)
Когда удаляю .site.ru вообще происходит мерзкая фигня, а именно по адресам поддоменов начинает открываться домен другого сайта установленного на этом ВПС который стоит первым в списке в isp панели
Код:
server {
listen 80;
server_name *.site.ru;
return 301 $scheme://site.ru$request_uri;
}
Ставил и в самый верх и после #user 'siteru' virtual host 'site.ru' configuration file
Ставил и отдельным блоком для чистоты эксперимента.
Даже думал что этот конфиг вообще не рабочий но нет условия
if ($host = 'www.site.ru') {
rewrite ^(.*)$ http://site.ru$1 permanent;
}
if ($host = 'm.site.ru') {
rewrite ^(.*)$ http://site.ru$1 permanent;
}
работают корректно.
При добавлении новых условий домены начинают правильно редиректиться, но по отдельности как то проблематично их вписывать их много и я честно говоря не понимаю почему это условие со звездочкой работать отказывается.
омайнгот.. держатели серверов не имеют понятия о виокард доменах?![]()