Метод 1: использование.htaccess и mod_rewrite
Наиболее распространенный и широко используемый метод достижения чистых URL-адресов — использование возможностей.htaccess и модуля Apache mod_rewrite. Модуль mod_rewrite позволяет вам манипулировать URL-адресами на лету и перезаписывать их в соответствии с заданными правилами.
Чтобы удалить расширение.php из ваших URL-адресов, выполните следующие действия:
- Создайте или отредактируйте файл.htaccess в корневом каталоге вашего веб-сайта.
- Добавьте следующий код, чтобы включить механизм перезаписи:
RewriteEngine On
- Затем добавьте правило перезаписи, чтобы удалить расширение.php:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)/?$ $1.php [NC,L]
- Сохраните файл.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-адрес без расширения.