У меня есть установка nginx, но мне нужно исправить проблему, когда кто-то вводит "/ Home" в:
Фактическая структура каталога и файла содержит смешанные символы верхнего и нижнего регистра. Я хотел бы сохранить это для простоты, то есть / Home и / About являются фактическими каталогами, но для SEO я хочу постоянно перенаправлять в нижний регистр / home, но находить фактический / Home каталог.
Я не уверен, можно ли этого добиться с помощью правила перезаписи или есть нечувствительность к регистру для "location / {}" или какой-либо комбинации.
location / {
try_files $uri $uri/ /Home;
}
Примечание: Я не ищу ответов, которые попадают в Подводные камни Nginx, включая злое если.
Как упоминалось в комментариях к вашему вопросу, это возможно с помощью модуля perl. Предполагая, что вы будете использовать это $uri_lowercase
вы можете написать что-то вроде этого:
location / {
try_files $uri $uri/ $uri_lowercase $uri_lowercase/ =404;
}
Однако обратите внимание, что $ uri_lowercase может не соответствовать вашим потребностям, если у вас есть URL-адреса со смешанным регистром, например /Home/UseR/teSt.html
и вам нужно попробовать все кучу частично строчные буквы uri. Если это ваш случай, я настоятельно рекомендую получить некоторую политику в отношении ваших каталогов и потребовать, чтобы они были в нижнем регистре.