Вы можете использовать файл `.htaccess` для настройки веб-сервера Apache, чтобы выполнить то, что вы описали: направлять запросы на `index.php` при отсутствии запрашиваемого файла и переписывать URL для удаления расширения `.php`. Вот пример конфигурации, которую можно использовать в файле `.htaccess`:
```apache
RewriteEngine On
# Проверяем, является ли запрос запросом к файловой системе,
# например, к изображению, css, js и т.д.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Если файл или директория не найдены, перенаправляем запрос на index.php
RewriteRule ^ index.php [QSA,L]
# Настройка для удаления расширения .php из URL.
# Перенаправляем запросы с .php на URI без .php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.php$ /$1 [R=301,L]
# Если запрос сделан без расширения .php, но такой файл существует, его нужно использовать.
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [QSA,L]
```
1. `RewriteEngine On` включает использование модуля mod_rewrite для переписывания URL.
2. Первые две `RewriteCond` проверяют, не существует ли файл или директория, соответствующие запросу.
3. `RewriteRule ^ index.php [QSA,L]` перенаправляет все запросы, не соответствующие существующему файлу или директории, на `index.php`. Флаги `[QSA,L]` означают, что должны сохраниться все параметры запроса (Query String Append) и это последнее правило для текущего запроса (Last).
4. Второй блок правил удаляет расширение `.php` из URL, создавая постоянное перенаправление (301) со старого URL на новый.
5. Последний блок правил проверяет, существует ли файл с добавлением `.php` к текущему запросу; если да, то Apache подставит это расширение для выполнения запроса.
Убедитесь, что у вас включен модуль mod_rewrite (`sudo a2enmod rewrite` в Debian/Ubuntu) и что у вас есть права Override `AllowOverride All` в конфигурации VirtualHost или Directory вашего сайта.
Также важно помнить, что в целях безопасности вам может потребоваться настроить дополнительные правила, чтобы предотвратить доступ к важным системным или конфигурационным файлам через веб-сервер, таким как `.htaccess`, `.git`, конфигурации фреймворков и т.д.