В этой статье блога мы рассмотрим различные способы скрытия расширения «.php» от URL-адресов с помощью файла.htaccess. Этот метод не только улучшает эстетику URL-адресов вашего веб-сайта, но и повышает безопасность, скрывая базовый стек технологий. Мы предоставим примеры кода для каждого метода, чтобы помочь вам эффективно его реализовать.
Метод 1: перезапись URL-адресов с помощью mod_rewrite
Модуль mod_rewrite позволяет нам перезаписывать URL-адреса на лету. Используя регулярные выражения, мы можем переписать URL-адреса, исключающие расширение «.php». Добавьте следующий код в свой файл.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Метод 2: опция MultiViews
Опция MultiViews позволяет серверу автоматически сопоставлять запрос «/page» с «/page.php», если он существует. Это можно включить, добавив следующий код:
Options +MultiViews
Метод 3: принудительная загрузка
Если вы хотите принудительно загрузить файл, не раскрывая его расширение, вы можете использовать следующий код:
<FilesMatch "^(example)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
Метод 4: перенаправление на чистые URL-адреса.
Вместо перезаписи URL-адресов вы также можете перенаправлять запросы URL-адресов с расширениями «.php» на более чистые версии. Используйте следующий код:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+(.+)\.php(?:\s|\?) [NC]
RewriteRule ^ /%1 [R=301,L]
Метод 5. Использование фронт-контроллера
Фронт-контроллер — это единая точка входа для всех запросов. Он может обрабатывать URL-маршрутизацию, не раскрывая лежащую в основе технологию. Вот пример использования PHP:
<?php
// index.php (Front Controller)
$request = $_SERVER['REQUEST_URI'];
$route = str_replace('.php', '', $request);
switch ($route) {
case '/':
// Homepage logic
break;
case '/about':
// About page logic
break;
// Add more routes as needed
default:
// 404 logic
break;
}