Я принес домен в godady, и я Установил Пассажира + Nginx на Linux/Unix (Ubuntu) сервер и развернул приложение Ruby. Теперь мой домен смотрит что-то как http://example.com, когда я пытаюсь запросить от браузера. Но я хочу свой домен к перенаправлению по умолчанию к www каждый раз, когда это требуют от браузера (как http://www.example.com.).
example.conf
server {
listen 80;
server_name www.example.com example.com;
# return 301 $scheme://www.example.com$request_uri;
# Tell Nginx and Passenger where your app's 'public' directory is
root /var/www/example/public;
# Turn on Passenger
passenger_enabled on;
passenger_spawn_method direct;
passenger_min_instances 1;
#passenger_pool_idle_time 0;
rails_env development;
passenger_ruby /usr/local/rvm/gems/ruby-2.3.3/wrappers/ruby;
passenger_sticky_sessions on;
}
некомментарий строки
возвратите 301$scheme://www.example.com$request_uri;
бросает ошибку
www.example.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS
Я вынужден вручную ввести www.example.com в браузере. Вместо этого как я могу перенаправить к www по умолчанию?
Любая Справка высоко ценится.Заранее спасибо!
Вам в основном нужно два server
блоки конфигурации:
www
; быть перенаправленным для базирования домена толькоВот пример для запущения Вас:
server {
listen 80;
server_name www.example.com;
location / {
# Redirection happens here
return 301 http://example.com$request_uri;
}
}
server {
listen 80 default_server;
server_name example.com;
# Other conf directives go here
}
Самый легкий путь состоит в том, чтобы, вероятно, использовать NGINX if
операторы. Просто поместите следующее в свою виртуальную конфигурацию хоста:
if ($host = "example.com") {
return 301 $scheme://www.$host$request_uri;
}
и обязательно замените "example.com" Вашим доменным именем.
В то время как это - самый простой способ, которым я нашел, это не является лучшим. Рекомендуемый маршрут состоит в том, чтобы создать отдельное server
блок для non-www, и помещенный return
оператор там.