Чтобы настроить перенаправление всех запросов на index.php в Nginx, вы можете использовать следующую конфигурацию:
```
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
```
Эта конфигурация обрабатывает все запросы с помощью `location /` и проверяет существование файлов и директорий с помощью `try_files`. Если файл или директория не существует, запрос будет перенаправлен на `index.php`. Все запросы к файлам с расширением `.php` обрабатываются с помощью `location ~ \.php$` и пересылаются на PHP-FPM для обработки.
Чтобы настроить сервер Nginx, чтобы он возвращал ошибку 404 для ссылок, не указанных в index.php, вы можете использовать следующую конфигурацию:
```
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
```
В этой конфигурации вместо перенаправления на `index.php` мы используем директиву `=404`, которая указывает на возвращение ошибки 404 для запросов, не соответствующих существующим файлам и директориям.