Рубрики
Uncategorized

Хватит использовать файлы .htaccess! Нет, правда.

Хватит использовать файлы .htaccess! Нет, правда. Каждый CMS под солнцем имеет настройку … Теги с DEVOPS, производительностью, WebPerf.

Каждый CMS под солнцем вы настраиваете .htaccess Файл, если вы используете Apache. Не делай этого!

Эндрю Уэлч/ nystudio107.

Хватит использовать .htaccess Файлы! Похоже, ересь. .htaccess Файл был стандартной частью WebDev World так долго, это как старый друг. И все же пришло время прощаться.

.htaccess Файлы родились из эпохи, когда общий хостинг был обычным явлением: Sysadmins нужен способ позволить нескольким клиентам получать доступ к своему серверу под разными учетными записями с различными конфигурациями для своих веб-сайтов. .htaccess файл позволил им изменить, как работает Apache без имея доступ ко всем серверу.

Виртуальный частный сервер, или VPS, сделал это дело в прошлом. Отличные хостинг компании, как Линоума , Цифровой океан , Vult и т. Д. Дайте вам весь виртуальный сервер, который полностью изолирован и автономным. И все же, как приложение, .htaccess сохраняется.

Действительно, современные веб-серверы, такие как Nginx даже не иметь концепции .htaccess Файл, потому что времена изменились.

Почему это имеет значение, вы говорите? Одним словом: Производительность Отказ Не принимайте мое слово для этого, вот что за Apache Foundation (Создатели Apache) должны сказать:

Высоко оцененный HTML5 Boeterplate предупреждает против этого:

У них даже есть целый раздел на apache.org посвященный Когда (не) использовать файлы .htaccess . В двух словах, если вы используете .htaccess Файлы, каждый запрос веб-сервера Ручки — даже для самых низких .PNG или .css Файл — вызывает Apache to:

  • Ищите .htaccess Файл в каталоге текущего запроса
  • Тогда ищите .htaccess Файл в каждом каталоге оттуда до корня сервера
  • Объединяет все эти .htaccess Файлы вместе
  • Переконфигурируйте веб-сервер, используя новые настройки
  • Наконец, доставить файл

Каждый. Одинокий Запрос. И каждая веб-страница может генерировать десятки запросов. Это накладные расходы, которые вам не нужны, и что еще больше, это совершенно не нужно, если вы не находитесь в среде общего хостинга в старом стиле (и если вы, прекратите читать эту статью и немедленно перейти на современную VPS).

Проблема ухудшается, тем больше вещей добавляются к .htaccess файл. Часто это свалка для вещей, таких как правила переписывания и такое, а тем более сложный ваш .htaccess Файл это, тем больше накладных расходов добавляется, когда Apache должен разбирать его для каждого запроса.

Касательно: Лучшее решение для 301 перенаправления — это системный процесс CMS перенаправления только после произошедшего 404 исключение, ала Рент Плагин для Craft CMS. Обоснование состоит в том, что лучше, чтобы веб-сервер быть исполнителем для большинства нормальных запросов, а не исключительные запросы перенаправления. Существуют исключения, конечно: http . → HTTPS. Перенаправить должен всегда оставаться на стороне серверов из-за того, как часто это происходит.

Вот по умолчанию .htaccess Файл, который отправляется с помощью Craft CMS:


    RewriteEngine On

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]


Выглядит достаточно просто. Это просто делает некоторые модные вещи, чтобы убедиться, что вы можете иметь довольно выглядящие URL без index.php В них и убедиться, что 404 ошибок поперенся через ремесло. Это довольно типично для того, что многие системы CMS вы поставили в .htaccess файл.

Для каждого домена на вашем веб-сервере есть файл виртуального хоста, который сообщает веб-серверу, как служить веб-страницам для этого домена. Все, что нам нужно сделать, это перевести то, что мы использовали, чтобы положить в наше .htaccess Файл в файл виртуального хоста, и мы закончим. Это действительно так просто.

Все от вашего http . -> https Переписать правила, чтобы истечь заголовки, настройки сжатия GZIP, а другие настройки повышения производительности все будут работать.

Git ‘Er. Сделанный

Так как вы на самом деле прочитали это далеко, я предполагаю, что вы на борту с освобождение от использования .htaccess файлы. Но как мы это делаем? Простой. Нам просто нужно взять директивы, которые были в .htaccess файл и положить их на наш виртуальный хост .CONF файл. Эти файлы обычно расположены в /etc/httpd/conf.d. или /etc/httpd/сайты - доступны На большинстве дистрибутивов Linux.

Есть еще одна маленькая вещь, которую мы должны сделать, а также. Даже если у нас даже нет .htaccess Файл на нашем сервере, Apache все еще будет искать их, если RutoVerride Директива говорит это. Итак, мы просто устанавливаем AutoVerride None В нашем файле виртуального хоста, и это говорит Apache, что ему не нужно искать .htaccess файлы больше.

Вот какой полный виртуальный хост .conf. Файл выглядит как для Craft CMS. Другие системы CMS должны выглядеть довольно похожи:


  ServerName BradsForMen.com
  ServerAlias *.BradsForMen.com
  DocumentRoot /var/www/BradsForMen/public
  CustomLog /var/log/httpd/BradsForMen.com-access.log combined
  ErrorLog /var/log/httpd/BradsForMen.com-error.log

## Canonical domain rewrite ##
  
    Redirect "/" "http://BradsForMen.com/"
  

  
      Options FollowSymLinks
      AllowOverride None

## Removes index.php from Craft URLs ##
      
        RewriteEngine On
        # Send would-be 404 requests to Craft
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
        RewriteRule ^(.+) /index.php?p=$1 [QSA,L]
      
  


Обратите внимание, что мы тонко изменили Regex из Переписать (. +) index.php? p = 1 $ [QSA, L] к Переписать ^ (. +)/Index.php?p=$1 [ QSA, L]

Вот и все. Сохраните это, перезапустите Apache с sudo apachectl перезагрузите И далеко ты идешь!

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

Даже, казалось бы, небольшие усиления производительности, добавляются при реализации вместе.

Дальнейшее чтение

Если вы хотите быть уведомленным о новых статьях, следуйте nystudio107. в Твиттере.

Copyright © 2020 Nystudio107. Разработанный Nystudio107.

Оригинал: «https://dev.to/gaijinity/stop-using-htaccess-files-no-really-2pf»