Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!



Зайди на www.example.com, http://example.com, www.example.com/test, потом на http://www.example.com/test. спокойно может превратиться в Зайди на <a href="http://www.example.com,">www.example.com,</a> <a href="http://example.com,">http://example.com,</a> <a href="www.example.com/test,">www.example.com/test,</a> потом на <a href="http://www.example.com/test.">http://www.example.com/test.</a> а не в Зайди на <a href="http://www.example.com">www.example.com</a>, <a href="http://example.com">http://example.com</a>, <a href="www.example.com/test">www.example.com/test</a>, потом на <a href="http://www.example.com/test">http://www.example.com/test</a>. — и всё, у вас битые ссылки.GET / HTTP/1.1
Host: yandex.ruif ($http_host != 'domain.zone') {
rewrite ^/(.*)$ http://domain.zone/$1 permanent;
}
server {
server_name domain.zone. ;
rewrite ^/(.*)$ http://domain.zone/$1 permanent;
}
server {
server_name domain.zone. ;
...
}
- rewrite ^/(.*)$ http://domain.zone/$1 permanent;
+ return 301 http://domain.zone$request_uri;
Nginx
server { server_name domain.zone. ; return 301 $http://domain.zone$request_uri; }
% telnet habrahabr.ru 80
Trying 212.24.43.42...
Connected to habrahabr.ru.
Escape character is '^]'.
GET / HTTP/1.1
Host: hABraHABr.ru
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 16 Mar 2013 14:24:38 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=25
17d6d
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Лучшие за сутки / Посты / Хабрахабр</title>
$host нормализуется и может отличаться от оригинального $http_host (где будет точка). Правда, там говорится лишь о том, что из него будет убран номер порта, если он есть. Однако и точку он тоже убирает, что кстати немного противоречит стандарту.if ($http_host ~* ^domain\.zone\.) {
return 301 $scheme://$host$request_uri
}if ($http_host ~ "\.$") {
return 301 $scheme://$host$request_uri;
}
server {
server_name domain.zone. ;
return 301 $http://domain.zone$request_uri;
}
не работает, и работать не может. Причины я описал.cd /data/web и cd data/web. Что покажет pwd после выполнения второй команды предсказать нельзя, это зависит от того, в какой вы директории находитесь. Какие бывают проблемы, читайте например RFC 1535 (хотя с тех пор не актуально, но представление дает).# echo -e "search vbart.ru\noptions ndots:5" >> /etc/resolv.conf

вы и не подозреваете, что ваш сайт доступен по доменному имени с точкой в конце (domain.zone.), так как браузеры позволяют обращаться к сайтам, как с точкой в конце домена, так и без неёс той лишь разницей, что неподозреваемая доступность сайта лежит на совести сервера, а не браузера.
<rule name="point" stopProcessing="true">
<match url="^(.*)\.$" />
<action type="Redirect" url="{R:1}" redirectType="Temporary" />
</rule>
Чем может грозить точка в конце доменного имени