Как сделать уникальную ссылку (location, nginx)?

Хочу, чтоб по ссылке test.ru/m01 nginx отрабатывал следующим образом:
  • делал корневой директорией след.папку: new
  • индексным файлом был file.html



Предполагается, что m может быть как от m01, так и до m60. Папок таких нет на сервере, да и не нужно. Сделал регулярку.

location / {
                        if ($host != 'test.ru'){
                        rewrite (.*) http://test.ru$1   permanent;
                        }
                         if ($request_uri ~ /m01$) {
                         set $root_path $root_path/new;
                         set $index file.html;
                         root $root_path;
                         rewrite ^/(m01)$ /$1/file.html;
                         }
                         root $root_path;
                         index $index;


Но, логи вот что говорят: *1 open() "/var/www/test.ru/new/new/m01/file.html" failed (2: No such file or directory)

Что делаю не так и как надо ТАК ?
  • Вопрос задан
  • 412 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
> Что делаю не так
Примерно всё.

server {
  listen 80 default_server;
  return 301 http://test.ru$request_uri;
}

server {
  listen 80;
  server_name test.ru;
  root /path/to/root;

  rewrite ^/m[0-6][0-9]$ /new/file.html;

  ...
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DigitalSmile
@DigitalSmile
http://brainstorage.me/digitalsmile
Что делаю не так

wiki.nginx.org/IfIsEvil
Там же примеры, как сделать так.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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