Я добавил следующие правила к своему nginx.conf файлу
rewrite ^/top100/Armin%20van%20Buuren/(.*)$ http://www.example.com/armin-van-buuren/$1 redirect;
rewrite ^/top100/armin-van-buuren/(.*)$ http://www.example.com/armin-van-buuren/$1 redirect;
rewrite ^/top100/(.*)$ http://www.example.com/$1 redirect;
Для 1-го правила это перенаправляет к www.example.com/top100/Armin%20van%20Buuren/
кому: www.example.com/Armin%20van%20Buuren/
Другие 2 правила хорошо работают. Что я портил здесь?
Nginx использует внутренне нормализованные URI:
Сопоставление выполняется с нормализованным URI после декодирования текста, закодированного в форме «% XX» , разрешая ссылки на компоненты относительного пути «.» и «..», а также возможное сжатие двух или более соседних косых черт в одну косую черту.
Используйте (одинарные или двойные) кавычки, чтобы заключить пробел в строку.
Таким образом, это будет:
rewrite "^/top100/Armin van Buuren/(.*)$" /armin-van-buuren/$1 redirect;