настройка redirect nginx

Статус
Закрыто для дальнейших ответов.

lehatyapachkin

Новичок
Регистрация
13.06.2018
Сообщения
2
Здравствуйте, помогите решить проблемку. у меня стоит ubuntu и nginx решил сделать redirect с site.local на www.site.local. в /etc/hosts прописал 127.0.0.1 www.site.local. и теперь если в адресной строке браузера пишу site.local, то переход на www.site.local происходит. Но если на писать ссылку в коде на site.local без www то браузер не находит такую страницу, при обновлении страницы нету и всё тут. но стоит поставить курсор в адресной строке браузера просто нажать ентр то все нормально переход есть.
разъясните почему так и что я неправильно мог сделать. заранее благодарен!
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
С WWW и без - это разные сайты. WWW считается поддоменом.
Пропиши в hosts ещё одной строкой сайт без WWW.
Или пропиши маской
127.0.0.1 *.site.local
 

lehatyapachkin

Новичок
Регистрация
13.06.2018
Сообщения
2
Доброго времени суток, спасибо, что пытаетесь мне разъяснить. Дело в том, что я как раз узнал о том что с www и без www это разные сайты и дабы не дублировать т.к. поисковики этого не любят нужно делать redirect с одного на другой (какой выберешь главным). в /etc/hosts у меня было два варианта, но чтобы приблизится к реальным условия я решил воспроизвести 301 redirect.
в конфиге виртуального хоста я прописал redirect с без www на с www и чтобы не дублировать и осмыслить настройки redirecta убрал без www и /etc/hosts. раньше так и было прописано в /etc/hosts www.site.local, site.local. Но начитался что это два разных сайта, что нужно делать 301 redirect. в виртуальном хосте nginx я прописал
server_name www.site.local site.local;
if ($hostname = site.local) {
rewrite (.*) http://www.site.local$1;
}
и соответственно удалил якобы второй вариант из /etc/hosts, а именно site.local без www. теперь если ручками вводишь в адресною строку браузерОВ site.local то переходит на www.site.local, а если на странице тег <а и href = site.local>, то кликаешь по ссылке и нет такой странице. но в адресной строке браузера она уже прописана, обновить страницу не помогает. Но если просто поставить курсор на этот адрес site.local в адресной строке и нажать энтр переход происходит. Как это можно объяснить???



а и ещё если прописать оба варианта, то необходимость в redirect отпадает итак заходит и на site.local www.site.local, но так получается 2-ва разных сайта. и если в /etc/hosts прописал 127.0.0.1 www.site.local
только этот адрес, то тогда браузер должен всегда показывать, что site.local не существует. но это не так, почему?? заранее спасибо!
 

miketomlin

Well-Known Member
Регистрация
12.11.2013
Сообщения
101
Добавьте в ссылку протокол или хотя бы // перед именем хоста.

Два сайта – это хорошо – расширяет бутылочное горлышко. На одном можно смело прописать безусловный редирект.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ