Архів мітки: rewrite

Лапки у rewrite правилах Nginx

Якщо пишете правило rewrite для веб-сервера Nginx в якому використовуєте регулярні вирази (regexp) – завжди беріть його у лапки!

Тоді вам не побачити помилку при старті (рестарті) цього серверу:

nginx: [emerg] directive "rewrite" is not terminated by ";" in ...

Правило мало досить безневинний вигляд:

rewrite ^/([A-Za-z0-9]{6})$ /dyn/gallery.js?link=$1 last;

А треба було писати так:

rewrite "^/([A-Za-z0-9]{6})$" /dyn/gallery.js?link=$1 last;

Порядок псевдонімів server_name у конфігу Nginx

Веб-сервер Nginx дозволяє доволі гнучко керувати псевдонімами вашого сайту. Можна використовувати декілька директив server_name:

server_name example.com www.example.com alias.com;
server_name www.alias.com;

Мені подобається схема у 2 імені, коли перше іде без www, а друге з www:

server_name example.com www.example.com;
server_name alias.com www.alias.com;

Але перше ім’я домену має найвищій пріоритет і саме воно буде використане за умовчанням при обробці правил rewrite з опціями redirect та permanent.

Простий приклад. Маємо правило:

rewrite ^/user/(.*) /newlook/$1 permanent;

За таким правилом користувача завжди буде перенаправлено до домену example.com:

example.com/user/index.php -> example.com/newlook/index.php
www.example.com/user/index.php -> example.com/newlook/index.php
alias.com/user/index.php -> example.com/newlook/index.php
www.alias.com/user/index.php -> example.com/newlook/index.php