10 полезных фрагментов кода htaccess и хаков

Опубликовано: 2020-09-10

.htaccess — это файл, который должен знать и понимать каждый веб-администратор. На базовом уровне он контролирует доступ к каталогам вашего сайта. Но есть гораздо больше, чем вы можете сделать, как вам покажут фрагменты в этом посте.

Если вы хотите изучить основы .htaccess , вам следует ознакомиться с нашей статьей «Введение в .htaccess», в которой довольно хорошо объясняется все, что вам нужно, чтобы начать работу.

Вам также могут понравиться эти полезные фрагменты SQL-запросов WordPress или эти фрагменты, которые делают WordPress удобным для ваших клиентов.

1. Контроль доступа к файлам и каталогам

Защита паролем — это одно, но иногда вам может потребоваться полностью заблокировать пользователям возможность доступа к определенному файлу или каталогу. Обычно это происходит includes системными папками, такими как папка include, для которой приложениям потребуется доступ, но пользователям никогда не понадобятся привилегии.

Для этого вставьте этот код в файл .htaccess и поместите его в каталог:

Однако это заблокирует доступ для всех, включая вас. Чтобы предоставить себе доступ, вам необходимо указать свой IP-адрес. Вот код:

xxx.xxx.xxx.xxx — ваш IP-адрес. Если вы замените последние три цифры, например, на 0/12 , это укажет диапазон IP-адресов в одной сети, что избавит вас от необходимости перечислять все разрешенные IP-адреса отдельно.

Если вы хотите заблокировать доступ к определенному файлу, включая сам .htaccess , используйте вместо этого следующий фрагмент кода:

Точно так же, если вы хотите разрешить определенные IP-адреса, перечислите их с помощью allow from .

Если вы хотите заблокировать доступ к определенным типам файлов, используйте вместо этого:

2. Отключение просмотра каталогов

Чтобы предотвратить просмотр каталога, добавьте это:

Однако, если по какой-то причине вы хотите включить просмотр каталогов, измените его на следующее:

3. Ускорение загрузки за счет сжатия файлов

Вы можете сжимать файлы любого типа, а не только изображения. Например, чтобы сжать файлы HTML , используйте это:

Чтобы сжать файлы TEXT , используйте это:

Вы также можете сжать JavaScript или добавить сжатие к нескольким типам файлов с помощью одной команды:

В качестве альтернативы, если вы хотите сжать все ваши файлы JavaScript, HTML и CSS с помощью GZIP, вы можете использовать это:

4. Защитите свой сайт от хотлинков

Если вы не хотите, чтобы ваши изображения были связаны по горячим ссылкам, добавьте это в свой файл .htaccess :

Просто замените yourdomain.com на свой собственный, и все готово.

5. Блокировка посетителей, перешедших с определенного домена

Если у вас есть пользователи из определенного домена, которых вы не приветствуете, вы можете запретить им доступ к вашему сайту. Например, если ваш сайт указан в месте, откуда вы не хотите получать трафик (например, сайты для взрослых, сайты черных шляп и т. д.), вы можете предоставить им страницу 403 Forbidden. Вам нужно включить mod_rewrite , но все должно быть в порядке, так как обычно он включен. Добавьте этот фрагмент:

Вам нужно заменить bannedurl1.com и bannedurl2.com и т. д. доменными именами, которые вы хотите внести в черный список. Вы можете использовать флаг [NC] , поскольку он указывает, что введенное вами доменное имя не чувствительно к регистру. Флаг [F] указывает действие, которое необходимо предпринять — в данном случае для отображения ошибки 403 Forbidden. Если вы хотите заблокировать несколько сайтов, используйте флаг [NC,OR] для каждого домена, кроме последнего, а если вы хотите заблокировать один домен, используйте только флаг [NC] .

6. Блокировка запросов от определенных пользовательских агентов

Если ваши лог-файлы показывают определенные пользовательские агенты (боты или пауки), вы можете добавить несколько строк в .htaccess и запретить им доступ к вашему сайту:

Замените badbot1 , badbot1 и т. д. именами ботов из ваших лог-файлов. Это должно держать такие программы подальше от вашего сайта.

7. Кэширование файлов

Еще один способ ускорить загрузку вашего сайта — кэширование файлов. Вот что вам нужно добавить для кэширования файлов:

Вы можете добавить дополнительные типы файлов (или удалить некоторые из них) к последовательности файлов, перечисленных в этом примере — делайте, что вам удобно. Вы также можете использовать max-age , чтобы указать количество времени в секундах, в течение которого ваши файлы будут находиться в кеше.

8. Отключение кэширования для определенных типов файлов

Если вы не хотите кэшировать определенные типы файлов, проще не включать их в последовательность кэширования. Однако иногда файлы могут кэшироваться, даже если вы явно не указываете их там, и в этом случае вы можете отключить кэширование только для них. Чаще всего вам потребуется отключить кэширование для динамических файлов, таких как скрипты. Вот как это сделать:

Просто передайте файлы, для которых вы хотите отключить кэширование, и все.

9. Обход диалога загрузки

По умолчанию, когда вы пытаетесь загрузить файл с веб-сервера, вы получаете диалоговое окно с вопросом, хотите ли вы сохранить файл или открыть его. Этот диалог особенно раздражает при работе с большими медиафайлами или PDF-файлами. Если файлы, которые вы загрузили на свой сервер, предназначены для загрузки, вы можете избавить пользователей от хлопот и сразу перейти к загрузке. Вот что вам нужно установить в .htaccess :

10. Переименование файла .htaccess

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

Вам также необходимо обновить любые записи в самом файле или везде, где упоминается .htaccess ; иначе вы получите много ошибок.

11. Изменение индексной страницы по умолчанию

Если вы хотите, чтобы ваша индексная страница отличалась от стандартных index.html , index.php , index.htm и т. д., это очень легко сделать. Вот что вам нужно добавить в .htaccess :

Замените mypage.html фактическим URL-адресом страницы, которую вы хотите использовать в качестве индекса, и все готово.

12. Перенаправление на безопасное https-соединение

Если вы используете HTTPS и хотите перенаправить пользователей на защищенные страницы вашего сайта, используйте это:

13. Ограничение ограничений на загрузку файлов в PHP, максимальный размер почтовых данных, максимальное время выполнения скрипта и т. д.

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

Конечно, вы можете установить любое значение, которое сочтете нужным — 15 МБ в этом примере не является фиксированным. Вы также можете ограничить максимальный размер сообщения для загрузки в PHP. Для этого добавьте это:

Точно так же вы можете изменить 10M на любое значение, которое вам подходит. Если вы не хотите, чтобы скрипты выполнялись вечно, вы можете ограничить время их выполнения с помощью следующего:

240 — это количество секунд до завершения скрипта, и, как вы уже догадались, это может быть любое значение. Наконец, если вы хотите ограничить время, в течение которого скрипт может анализировать входные данные, используйте это:

И установите любое значение в секундах, которое вам подходит.

14. Маскировка типов файлов

Иногда вы не хотите, чтобы пользователи знали типы файлов на вашем сайте. Один из способов скрыть эту информацию — замаскировать их. Например, вы можете сделать так, чтобы все ваши файлы выглядели так, как если бы они были файлами HTML или PHP:

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