Скрыть расширения веб-сайта: примеры и соображения

Вот несколько способов скрыть расширение веб-сайта, а также примеры кода с использованием популярных веб-технологий:

  1. Переписывание URL-адресов с помощью Apache mod_rewrite (PHP):

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

    В этом примере расширение «.php» удаляется из URL-адресов с помощью модуля Apache mod_rewrite. Например, он преобразует «/about.php» в «/about».

  2. Переписывание URL-адресов с помощью nginx (PHP):

    location / {
       try_files $uri $uri/ $uri.php?$args;
    }

    Этот фрагмент конфигурации nginx удаляет расширение «.php» из URL-адресов. Например, он преобразует «/about.php» в «/about».

  3. Маршрутизация с помощью веб-фреймворка (например, Django):

    from django.urls import re_path
    from . import views
    urlpatterns = [
       re_path(r'^about/$', views.about),
    ]

    В этом примере Django шаблон URL-адреса «/about/» соответствует функции представления about. Расширение файла не включено в URL.

  4. Маршрутизация на стороне клиента с помощью JavaScript (например, React Router):

    import { BrowserRouter as Router, Route } from 'react-router-dom';
    import About from './components/About';
    function App() {
       return (
           <Router>
               <Route path="/about" component={About} />
           </Router>
       );
    }

    Этот пример React Router демонстрирует, как обрабатывать маршрутизацию на стороне клиента. URL-адрес “/about” соответствует компоненту About, расширение файла не указано.

  5. Среды MVC (например, Laravel):
    В средах MVC, таких как Laravel, расширение обычно скрыто по умолчанию. URL-адреса сопоставляются с действиями контроллера без включения расширения файла.

Стоит отметить, что сокрытие расширения веб-сайта потенциально может повлиять на SEO. Поисковые системы могут полагаться на расширения файлов, чтобы понять тип и релевантность контента. Если вы решите скрыть расширения, убедитесь, что вы правильно обрабатываете перенаправления и канонические URL-адреса, чтобы избежать проблем с дублированием контента.