2016-08-19 6 views
1

Как перенаправить, если имя скрипта содержит только числа?nginx перенаправляет на новый url, если имя скрипта содержит только цифры

http://example.com/125689 ->http://example.com/news/125689

Я использовал этот код, но я получил сообщение об ошибке 404.

location ~ /([0-9]+) { 
    return 301 http://example.com/news/$1; 
} 

ответ

0

Вы создали цикл переадресации, поскольку регулярное выражение не привязывается к началу строки, так что также соответствует переписан URI.

Вы можете ограничить область действия регулярным выражением с добавлением ^ и $.

location ~ ^(/\d+)$ { 
    return 301 $scheme://$host/news$1; 
} 

См this для полезного ресурса регулярных выражений.