Добро пожаловать на ИТ форум!

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

Регистрация

настройка 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
Сообщения
3 914
С 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

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

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