Чтобы объединить два правила в конфигурации сервера nginx, так что первое правило перенаправляет все запросы к несуществующим файлам на `index.php`, а второе убирает расширение `.php` в URL, вам понадобится использовать директиву `try_files` вместе с блоком `location`.
Пример конфигурации для объединения таких правил:
```nginx
server {
# ... остальная часть конфигурации ...
location / {
# Попытка найти файл, если он не найден - перенаправляем на index.php
try_files $uri $uri/ /index.php?$args;
}
# Разрешаем открытие PHP файлов без расширения .php
location ~ ^(.+)\.php(/|$) {
# Пропускаем только существующие .php файлы
try_files $uri =404;
# ФастКГИ или PHP-FPM параметры (зависит от вашей конфигурации)
fastcgi_pass unix:/var/run/php/php-version-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
# Чтобы перенаправить URLs с .php на без расширения
location ~ \.php$ {
rewrite ^(.*)\.php$ $1 last;
}
}
```
Обратите внимание, что в конфигурации используются регулярные выражения для обработки URL-адресов. В первом блоке `location /` мы пытаемся найти файл, и если он не найден, отдаем запрос скрипту `index.php`. Во втором блоке `location ~ ^(.+)\.php(/|$)` мы обрабатываем все запросы, которые оканчиваются на `.php` или следуют за ним с использованием PHP-FPM. Последний блок `location ~ \.php$` используется для перенаправления всех запросов с расширением `.php` на тот же путь без этого расширения.
Такой подход работает, если вы хотите скрыть расширение `.php` в URL, однако убедитесь, что ваше приложение или CMS поддерживает такое использование URL без расширений.
Не забудьте проверить конфигурацию nginx на наличие ошибок командой `nginx -t`, прежде чем перезагружать или перезапускать сервис:
```sh
sudo nginx -t
```
Если конфигурация в порядке, перезагрузите или перезапустите nginx, чтобы применить изменения:
```sh
sudo systemctl reload nginx
# или
sudo service nginx reload
```
Убедитесь, что ваш конфигурационный файл nginx соответствует спецификам вашей системы и потребностям, включая пути к файлам и параметры PHP-FPM.