.htaccess файл: добавьте следующие строки:
Options +MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
https://alexcican.com/post/how-to-remove-php-html-htm-extensions-with-htaccess/
Теперь вам нужно проверить условие AllowOverride в файле apache2.log:
установить параметры AllowOverRide All в корневом веб-каталоге:
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Если вы попытаетесь получить доступ к своей веб-странице без расширения .php, вы можете столкнуться со следующей ошибкой в файле apache error.log:
/var/www/html/web/.htaccess: недопустимая команда 'RewriteEngine', возможно, с ошибкой или определена модулем, не включенным в конфигурацию сервера
Чтобы исправить это: у вас не установлен модуль mod_rewrite, чтобы установить его:
Выполните следующую команду: ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
.htaccess: недопустимая команда 'RewriteEngine', возможно, с ошибкой или определена модулем, не включенным в конфигурацию сервера
Опять же, после обновления веб-страницы вы можете получить следующую ошибку в файле error.log:
[negotiation:error] [pid 4650] [client 127.0.0.1:46461] AH00687: Negotiation: discovered file(s) matching request: /var/www/html/web/test (None could be negotiated). (I was trying to access localhost/web/test.php using the url: localhost/web/test)
Чтобы исправить это, вам нужно добавить следующие строки в apache2.conf:
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .html
AddType application/x-httpd-php-source .phps
https://forums.digitalpoint.com/threads/htaccess-addtype-application-x-httpd-php-php-htm-html-and-maybe-a-fix.7584/#post-2491687
Теперь я могу получить доступ к файлу test.php, используя только имя файла: test