Я хочу перенаправить все URL-адреса с символами подчеркивания на их пунктирный эквивалент.
например. /nederland/amsterdam/car_rental
становится /nederland/amsterdam/car-rental
. Для этого я использую описанную здесь технику: Как заменить подчеркивание тире на Nginx. Поэтому мой блок местоположения сопоставляется с:
location ~ (_)
Но я только хочу сделать это по URL не в пространстве имен /admin
. Для этого я попытался комбинировать регулярное выражение с отрицательным поиском: Регулярное выражение для соответствия строке, которая не содержит слова?. Теперь местоположение совпадает с:
(?=^(?!\/admin))(?=([^_]*))
Rubular сообщает строку /nederland/amsterdam/car_rental
, чтобы соответствовать регулярному выражению, а /admin/stats_dashboard
не соответствует, так же как и я. Однако, когда я применяю это правило к конфигурации nginx, сайт заканчивается в циклах перенаправления. Есть ли что-то, что я забыл?
UPDATE: я действительно не хочу переписывать что-либо в пространстве имен /admin
. Переменная подчеркивания к тире должна выполняться только во всех URL не в пространстве имен /admin
.