Задать вопрос

Как сделать правильный редирект https Nginx/BitrixVM?

Используются следующие настройки:
s1.conf
	# Default website
	server {

		listen 80;
		server_name test.com www.test.com;
		return 301 https://test.com$request_uri;  # enforce https
		
		server_name_in_redirect off;
		
		access_log /var/log/nginx/access.log main;
		error_log  /var/log/nginx/error.log warn;
    
		proxy_set_header	X-Real-IP        $remote_addr;
		proxy_set_header	X-Forwarded-For  $proxy_add_x_forwarded_for;
		proxy_set_header	Host $host:80;
		proxy_set_header<	X-Forwarded-Host $http_host

		set $proxyserver	"http://127.0.0.1:8888";
		set $docroot		"/home/bitrix/www";

		index index.php;
		root /home/bitrix/www;

		# Redirect to ssl if need
		if (-f /home/bitrix/www/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }

		# Include parameters common to all websites
		include bx/conf/bitrix.conf;

		# Include server monitoring locations
		include bx/server_monitor.conf;
	}

s1_ssl.conf

	# Default SSL certificate enabled website
	server {
		listen	443 default_server ssl;
		server_name test.com;
		
		
		# Enable SSL connection
		include	bx/conf/ssl.conf;
		server_name_in_redirect	off;

		proxy_set_header	X-Real-IP	$remote_addr;
		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
		proxy_set_header	Host		$http_host:443;
		proxy_set_header	X-Forwarded-Host $http_host;
		proxy_set_header    X-Forwarded-Proto https;
		proxy_set_header	HTTPS 		YES;

		set $proxyserver	"http://127.0.0.1:8888";
		set $docroot		"/home/bitrix/www";

		index index.php;
		root /home/bitrix/www;

		# Include parameters common to all websites
		include bx/conf/bitrix.conf;

		# Include server monitoring API's
		include bx/server_monitor.conf;

	}

Если использовать URL типа https://test.com/xyz/ (или http://test.com/xyz/ или аналог с www) , то все отлично работает, но если вот так: https://test.com/xyz, то результат: 400 Bad Request, The plain HTTP request was sent to HTTPS port:
curl -I -k https://test.com/xyz
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.2
Date: Mon, 22 Feb 2016 09:13:28 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://test.com:443/xyz/
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN

в чем может быть дело?
  • Вопрос задан
  • 9728 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
честно, да простят меня коллеги по "перу", не очень хочется перепостом озадачиваться, что знал написал по этой теме тут: dev.1c-bitrix.ru/community/forums/messages/forum32...

да прибудет с вами сила!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
DmitryVoronkov
@DmitryVoronkov
Python Developer
Проблема не в NGINX, Не уверен, но я дума, что у битрикс есть настройки для урлов. Смотри в эту строну.
Ответ написан
@metajiji
По поводу слеша, все же просто:
try_files $uri $uri/ =404;
Но лучше, если само приложение будет понимать, что слешик, нужно добавить, если его вдруг нет, потому, что в текущей конфигурации все локейшены отдаются на совесть приложению.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы