404 в nginx для ПУТИ

#nginx

#nginx

Вопрос:

У меня есть веб-сайт (скажем https://test.somesite.com ) подается из папки /var/www/mainSite с использованием nginx. У меня есть еще один веб-сайт в https://test.somesite.com/CMS / для которого я должен сохранить другой набор статических файлов в /var/www/дочернем сайте

В моем конфигурационном файле nginx у меня есть ниже

 root /var/www/mainSite;
 location / {
          if (!-e $request_filename){
          rewrite ^(.*)$ /index.html break;
         }
        }
location /CMS/ {
    if (!-e $request_filename){
        rewrite ^(.*)$ /subSite/index.html break;
    }
}
 

Хотя основной сайт работает правильно, я получаю 404, когда нажимаю /CMS/

В журналах nginx я вижу * 544213 open() «/var/www/mainSite/subSite/index.html » сбой (2: нет такого файла или каталога), клиент: 172.31.77.145, сервер: test.somesite.com , запрос: «GET /CMS/ HTTP/1.1», хост: «test.somesite.com »

Не удалось понять, что здесь происходит не так. Может кто-нибудь помочь мне разобраться в проблеме? Так что в следующий раз я не буду делать то же самое 🙂

Комментарии:

1. /var/www/mainSite/subSite/index.html Существует ли файл? Какой файл, как вы ожидаете /subSite/index.html , вернет URI?

2. /var/www/mainSite/subSite/index.html здесь ничего не существует, так как мои основные и дочерние папки находятся на одном уровне. Это 2 разных веб-сайта, на которых 1 обслуживается somesite.com / и другие на somesite.com/CMS / @Ричардсмит

3. Если index.html файл находится внутри /var/www/subSite , вы должны попробовать: alias /var/www/subSite/; внутри location /CMS/ блока. И rewrite ^ /CMS/index.html last; внутри if блока.