7 хитрых способов скрыть расширения .php в ваших URL-адресах

Привет! Итак, вы хотите узнать несколько хитрых приемов, как скрыть надоедливые расширения.php в URL-адресах вашего сайта, да? Что ж, вы попали по адресу! В этой статье блога мы рассмотрим несколько методов достижения этой цели, сохраняя при этом простоту понимания. Итак, пристегнитесь и приступим!

Метод 1: перезапись URL-адресов с помощью mod_rewrite от Apache

Один из самых популярных способов скрыть расширение.php — использовать модуль Apache mod_rewrite. Для этого вам необходимо создать или изменить файл.htaccess в корневом каталоге вашего сайта. Вот пример того, как этого добиться:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Этот фрагмент кода проверяет, не соответствует ли запрос существующему каталогу и приводит ли добавление.php к запросу к допустимому файлу. Если оба условия соблюдены, он внутренне перезаписывает URL-адрес, эффективно скрывая расширение.php от пользователя.

Метод 2: использование сопоставления URL

Другой способ добиться желаемого результата — использовать сопоставление URL-адресов. Этот метод предполагает связывание определенных URL-адресов с соответствующими файлами PHP с помощью маршрутизатора или платформы. Это позволяет вам определять чистые и понятные URL-адреса, не раскрывая базовые файлы PHP. Вот простой пример использования встроенного сервера PHP:

<?php
  $routes = [
    '/' => 'index.php',
    '/about' => 'about.php',
    '/contact' => 'contact.php',
    // Add more routes as needed
  ];
  $path = $_SERVER['REQUEST_URI'];
  if (array_key_exists($path, $routes)) {
    include $routes[$path];
  } else {
    http_response_code(404);
    include '404.php';
  }
?>

Определив маршруты и включив соответствующий файл PHP на основе запрошенного URL-адреса, вы можете легко скрыть URL-адрес.

Метод 3. Согласование содержания

Согласование контента – это метод, при котором сервер доставляет различные версии ресурса в зависимости от предпочтений клиента. Используя этот подход, вы можете обслуживать файлы PHP, не раскрывая расширение.php в URL-адресе. Вот пример использования mod_negotiation Apache:

<FilesMatch "^(.*?)(\.php)$">
  SetHandler php5-script
</FilesMatch>

Эта конфигурация указывает Apache интерпретировать файлы с расширением.php как сценарии PHP, даже если расширение явно не присутствует в URL-адресе.

Метод 4: перенаправление URL

Перенаправление URL-адресов предполагает перенаправление запросов с URL-адресов с расширением.php на URL-адреса без него. Этого можно добиться с помощью модуля Apache mod_rewrite или сценариев на стороне сервера. Вот пример использования mod_rewrite:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)\.php$ /$1 [R=301,L]

Этот фрагмент кода проверяет, соответствует ли запрошенный URL существующему файлу и заканчивается ли он на.php. Если оба условия соблюдены, выполняется перенаправление 301 на тот же URL-адрес без расширения.php.

Метод 5: пользовательские страницы ошибок

Вы также можете использовать собственные страницы ошибок, чтобы создать иллюзию сокрытия расширения.php. Например, вы можете настроить свой сервер для отображения пользовательской страницы ошибки 404 для URL-адресов с расширением.php. Таким образом, когда пользователь пытается получить доступ к URL-адресу, например example.com/page.php, ему будет отображена визуально привлекательная страница с ошибкой, на которой не отображается расширение.php.

Метод 6: шаблон переднего контроллера

Шаблон фронт-контроллера обычно используется в веб-приложениях для обработки входящих запросов. Используя этот шаблон, вы можете иметь одну точку входа (например, index.php), которая обрабатывает все запросы и направляет их в соответствующие сценарии PHP, не раскрывая их отдельные URL-адреса. Это эффективно скрывает расширение.php. Вот базовая реализация:

<?php
  $request = $_SERVER['REQUEST_URI'];

  switch ($request) {
    case '/':
      include 'home.php';
      break;
    case '/about':
      include 'about.php';
      break;
    case '/contact':
      include 'contact.php';
      break;
    default:
      http_response_code(404);
      include '404.php';
      break;
  }
?>

Метод 7: настройка на стороне сервера

Наконец, в зависимости от конфигурации вашего сервера вы можете изучить параметры, специфичные для вашей среды хостинга. Некоторые хостинг-провайдеры предлагают панели управления или настройки, которые позволяют скрывать расширения файлов или настраивать URL-адреса без прямого изменения кода или использования.htaccess. Ознакомьтесь с документацией вашего хостинг-провайдера или обратитесь в его службу поддержки, чтобы узнать, предоставляют ли они какие-либо варианты сокрытия URL-адресов.

В заключение мы рассмотрели семь различных способов скрыть расширение.php в ваших URL-адресах. Независимо от того, решите ли вы использовать перезапись URL-адресов, сопоставление URL-адресов, согласование контента, перенаправление URL-адресов, пользовательские страницы ошибок, шаблон фронт-контроллера или конфигурацию на стороне сервера, теперь у вас есть множество вариантов для достижения желаемого результата. Не забудьте учитывать конкретные требования вашего проекта и выбрать метод, который лучше всего подходит для вас.

Надеюсь, эта статья оказалась для вас полезной в вашем стремлении скрыть расширения.php в своих URL-адресах. Удачи в развитии вашего сайта!