@hesy

404 для роутов или как настроить Nginx для подпапок?

Есть директория /var/www/example_com/ где лежит сайт example.com.
Из этой директории все роуты работают корректно, example.com/some_route, example.com/users, etc.

Если я размещаю "второй" сайт в саб директориях, то есть, я хочу чтобы у меня из /var/www/example_com/sandbox/hello/
получилось что-то example.com/sandbox/hello, в котором (!) я переопределю роуты, то есть базовый путь будет /sandbox/helloи все роуты будут ссылаться на index.php в этой папке, а не корневой.

До этого так делал на шаред-хостинге, всё работало как описал, на vds не могу самостоятельно настроить конфиг nginx.
Кстати вот сам конфиг:
Конфиг nginx
server {
	listen 80;
	listen [::]:80;

	root /var/www/example_com;

	index index.html index.php;

	server_name example.com;

	location / {
		try_files $uri $uri/ /index.php$is_args$args;
  }

	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
	}

	location ~ /\.ht {
		deny all;
	}
}


.htaccess
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]


Сейчас при попытки определить роут в в папке hello, выдает 404 ошибку.
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
@dodo512
location /sandbox/hello/ {
  try_files $uri $uri/ /sandbox/hello/index.php$is_args$args;
}


spoiler
server {
  listen 80;
  listen [::]:80;

  root /var/www/example_com;

  index index.html index.php;

  server_name example.com;

  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  location /sandbox/hello/ {
    try_files $uri $uri/ /sandbox/hello/index.php$is_args$args;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  }

  location ~ /\.ht {
    deny all;
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы