#nginx #server #url-rewriting #nginx-location
#nginx #сервер #url-перезапись #nginx-местоположение
Вопрос:
У меня есть настройка файла конфигурации моего домена для Nginx. Я установил домен как www.example.com и у меня есть весь подкаталог также внутри этого, например basefolder/index.html , basefolder/abc1/signup/index.html , basefolder/abc2/signup/index.html , basefolder/signup/index.html и т.д., поскольку число n может существовать.
Я могу напрямую вызывать их через domain/dir/, который вызовет index.html файл, доступный в этом каталоге. У меня есть определенная строка запроса, установленная только для папок «регистрация», например «www.example.com/signup/?query=a12seddf » или «www.example.com/abc1/signup/?query=a12seddf «. Я хочу скрыть их по пути, например «www.example.com/signup/a12seddf » или «www.example.com/abc1/signup/a12seddf «. Я пробовал использовать правило перезаписи, но оно работает, только если я указываю все местоположение до регистрации, но я хочу написать единое правило, которое будет работать для всех папок регистрации, вместо того, чтобы писать правило перезаписи для всех.
Я попробовал приведенный ниже код, но он не сработает для меня и выдает 404 при доступе к URL-адресу beautify.
location ~* signup/ {
rewrite ^/signup/([a-z0-9A-Z] )/?$ /signup/?query=$1 break;
}
Пожалуйста, найдите весь приведенный ниже пример рабочего конфигурационного файла с именами example.com.conf в папке с поддержкой nginx/sites:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html/sites/example.com;
error_page 404 /error_404.html;
location = /error_404.html {
root /var/www/html;
internal;
}
location ~* .(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
rewrite ^/abc1/signup/(.*)$ /abc1/signup/index.html?_l=$1 last;
rewrite ^/signup/(.*)$ /signup/index.html?_l=$1 last;
}
Спасибо.
Комментарии:
1. Вы должны показать больше своей конфигурации, чтобы мы могли понять, как она должна работать. И пример решения, которое работало только для одной папки.
2. @RichardSmith Я приложил образец демонстрации рабочего файла в моем обновленном вопросе. Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи по этому поводу. Спасибо.