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
, поэтому, если что-то пойдет не по плану, у вас будет рабочая копия, к которой можно вернуться.