2015-04-16 3 views
0

У нас есть угловое приложение, размещенное на nginx, которое использует случайные URL-адреса. Я пытаюсь написать регулярное выражение, чтобы сопоставить их все, чтобы перенаправить их в общий файл index.html. Что означает весь трафикодно регулярное выражение для всех путей местоположения, независимо от имени в nginx?

domain.com/abc 
domain.com/xyz 

все должны идти в файл index.html. Вот что я пытался:

location ~* ^/[a-z](.+)$ { 
rewrite^/index.html last; 
try_files $uri $uri/ /index.html; 
} 

Это не работает. Незлая помощь.

+0

Регулярное выражение, которое вы предоставляете, соответствует строке * whole *. Если 'nginx' дает вам' domain.com/abc', это выражение не будет совпадать. Кроме того, возможно, что '/' необходимо экранировать. Может быть, что-то вроде этого будет работать? '^ \/[A-Z] (. +) $'. – npinti

+0

подходит ли это к таким особым символам, как «-»? Также, если URL-адрес выглядит следующим образом: domain.com/abc/abc1 – stickywicket

+0

Символьный набор '[az]', должен означать любую строчную букву, которая находится между 'a' и' z', поэтому по существу весь английский нижний регистр алфавит. Согласно вашему выражению, первая буква после буквы '/' должна быть строчной английской буквой. Кроме этого, '(. +) $' Должен продолжать сопоставлять любой символ до конца строки. – npinti

ответ

0

Это отнюдь не ответ, но может быть слишком длинным для комментария.

Я полагаю, что происходит переписывание правила (я не знаю, связано ли это с вашим правилом или с изменениями, которые я предлагал). Что может случиться, так это то, что запрос перенаправляется на /index.html, как и ожидалось, однако /index.html удовлетворяет регулярному выражению, как показано на рисунке here. Это вызовет бесконечный цикл, который, как я полагаю, означает то, что означает internal redirection cycle.

Чтобы устранить эту проблему, вы можете попробовать что-то вроде этого: \/(?!index\.html).+ (пример here). Это гарантирует, что index.html не входит в строку, которую вы соответствуете. Этот шум нарушает цикл.

Смежные вопросы