Да, вы можете адаптировать ваш код, чтобы удалять расширение `.php` только для конкретного файла, например, `/contacts.php`. Вот пример того, как это можно сделать:
```apache
RewriteEngine on
# Убедитесь, что файл contacts.php существует и удаляем расширение .php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^contacts$ contacts.php [L,QSA]
# Редирект с .php на /contacts только для requests на /contacts.php
RewriteCond %{THE_REQUEST} \s/contacts\.php[\s?] [NC]
RewriteRule ^contacts\.php$ /contacts [R=301,L]
```
### Объяснение:
1. **Удаление расширения `.php`:**
- Первая часть проверяет, если файл не является физическим (`!-f`) или директорией (`!-d`), и существует ли файл `contacts.php` (проверка `RewriteCond %{REQUEST_FILENAME}.php -f`).
- Если условия выполняются, тогда происходит замена запроса `/contacts` на `/contacts.php`.
2. **Ручной редирект с `.php` на безрасширенческий вариант:**
- Вторая часть кода проверяет, поступил ли запрос для `contacts.php`, и если это так, выполняется редирект на `/contacts` с помощью статус-кода 301.
С помощью такого настроенного кода, вы получите желаемый результат, не затрагивая другие файлы `.php`.
Попробуйте добавить этот код в ваш `.htaccess` файл и протестировать. Если что-то не работает, убедитесь, что модуль `mod_rewrite` включен на вашем сервере.