Очистка URL-адресов: удаление .php из URL-адресов вашего сайта

Метод 1: использование.htaccess и mod_rewrite
Наиболее распространенный и широко используемый метод достижения чистых URL-адресов — использование возможностей.htaccess и модуля Apache mod_rewrite. Модуль mod_rewrite позволяет вам манипулировать URL-адресами на лету и перезаписывать их в соответствии с заданными правилами.

Чтобы удалить расширение.php из ваших URL-адресов, выполните следующие действия:

  1. Создайте или отредактируйте файл.htaccess в корневом каталоге вашего веб-сайта.
  2. Добавьте следующий код, чтобы включить механизм перезаписи:
RewriteEngine On
  1. Затем добавьте правило перезаписи, чтобы удалить расширение.php:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)/?$ $1.php [NC,L]
  1. Сохраните файл.htaccess и проверьте URL-адреса вашего веб-сайта. Теперь вы сможете получить доступ к своим PHP-файлам без расширения.php.

Метод 2: использование MultiViews
Если на вашем сервере Apache включена опция MultiViews, вы можете воспользоваться ею для получения чистых URL-адресов без явного использования mod_rewrite.

Чтобы включить MultiViews, добавьте в файл.htaccess следующую строку:

Options +MultiViews

При включенном MultiViews Apache будет автоматически обслуживать файлы без расширений. Например, если у вас есть файл с именем «about.php», вы можете получить к нему доступ по URL-адресу « https://example.com/about ».

Метод 3: использование функции PHP header()
Если вы предпочитаете решение, которое не требует.htaccess или настройки сервера, вы можете использовать функцию PHP header() для перенаправления запросов без расширения.php на соответствующий PHP-файл.

Вот пример:

<?php
if (preg_match('/^(.*)\.php$/', $_SERVER['REQUEST_URI'], $matches)) {
    $url = $matches[1];
    header("Location: $url");
    exit();
}
?>

Поместите этот код в начало файлов PHP, и он автоматически перенаправит запросы с расширением.php на URL-адрес без расширения.