Домашняя » кодирование » Руководство для начинающих по .htaccess для дизайнеров и разработчиков

    Руководство для начинающих по .htaccess для дизайнеров и разработчиков

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

    В этой статье я хочу представить некоторые наиболее ценные концепции для веб-мастеров и веб-разработчиков. Кто-нибудь, кто запуск собственного сайта на сервере Apache определенно захочет понять, как управлять своим файлом .htaccess. Это обеспечивает так много настраиваемости и это может работать на любых веб-языках из PHP в Ruby.

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

    Зачем использовать файл .htaccess?

    Это отличный вопрос, и, возможно, нам следует начать с ответа “Что такое файл .htaccess?”? Это очень специальный файл конфигурации, используемый веб-сервером Apache. Файл .htaccess может сообщить веб-серверу как представлять различные формы информации и как обрабатывать различные заголовки HTTP-запросов.

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

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

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

    Разрешить / запретить доступ

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

    порядок разрешить, отказать отказать от 255.0.0.0 отказать от 123.45.6. разрешить от всех 

    Эти примеры кодов были скопированы из Руководства Htaccess, поскольку они являются идеальным шаблоном для начала работы. Обратите внимание, что на 2-м IP-адресе отсутствует 4-е число. Этот блок кода будет предназначен для первого IP-адреса (255.0.0.0) и каждого IP-адреса в диапазоне 123.45.6.0-255., тогда разрешите весь другой трафик. Веб-мастера не могут использовать это так часто, как другие методы, но это полезно понять.

    Запретить каталогизацию

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

    Опции -индексы 

    Я видел этот ответ, представленный бесчисленное количество раз в течение Переполнения стека, и это может быть одним из самых простых правил .htaccess, чтобы запомнить.

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

    Защита паролем

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

    Существует полезное руководство по защите паролем, в котором изложены важные фрагменты кода. Вам нужно будет сгенерируйте файл паролей, в котором будут храниться имя пользователя и пароль. Вот как Apache может проверять вводимые пользователем данные, чтобы узнать, следует ли им предоставить доступ. И обратите внимание, как вам нужно будет создать образец для вашего имени пользователя и пароля.

    Я бы порекомендовал использовать этот генератор htpassword, чтобы вы могли сэкономить немного времени. Синтаксис всегда будет идеальным, вам не нужно шифровать пароль самостоятельно.. И другой отличный вариант - защитить паролем весь каталог. Мы можем видеть этот пример в галерее фрагментов кода CSS-хитрости.

    AuthType Basic AuthName «Эта область защищена паролем» AuthUserFile /full/path/to/.htpasswd Требуется действительный пользователь 
    Безопасность для WordPress

    Чтобы эффективно использовать эту идею защиты паролем, давайте покажем реальный пример. Этот более сложный фрагмент кода будет принудительная аутентификация пользователя для любого, кто получает доступ к файлу WordPress wp-login.php. Вы найдете исходный код в Ask Apache, в котором есть множество других фрагментов защиты WordPress..

     Порядок Запретить, Разрешить Запретить от всех Удовлетворить любое имя AuthName "Защищено AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Базовое требование valid-user  

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

    Правила перезаписи HTTP-URL

    Перезапись URL-адресов, вероятно, является одним из наиболее распространенных способов использования файлов .htaccess. Установки WordPress по умолчанию могут на самом деле создать файл .htaccess прямо из панели администратора. Это позволяет вам создавать красивые URL, которые не имеют структуры .php? P = 1.

    Я хочу посмотреть на этот пример переписать на как обновить подчеркивание до тире с тех пор содержит много самых важных элементов.

    Параметры + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! \. (Html ​​| php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Да] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Да] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Да] RewriteCond% ENV: uscor ^ Да $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L] 

    RewriteEngine а также RewriteBase всегда может быть установлен на эти точные значения. Но вам нужно включить RewriteEngine, чтобы все остальное работало. В Интернете есть множество руководств, объясняющих, как включить mod_rewrite, и ваш хостинг-провайдер также может помочь.

    Обратите внимание, что синтаксис следует шаблону RewriteRules на вершине. Эти правила используются для сопоставлять со случаями, которые отправляются как HTTP-запрос. На них отвечает RewriteRule, который в этом случае перенаправляет все в домен d.com. Конечные скобки, такие как [R = 301, L], называются флагами перезаписи, которые важны, но являются более сложным вопросом..

    Синтаксис mod_rewrite немного сбивает с толку, но не пугайтесь! Фрагменты могут выглядеть намного проще в других примерах.

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

    RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L] 

    Не пытайтесь перегружать себя этим сразу. Мне понадобилось более 3-4 месяцев, чтобы по-настоящему понять, как переписать URL-адреса с помощью [0-9a-zA-Z] + и аналогичных шаблонов. Продолжайте практиковаться, и со временем я обещаю, что вы получите все это, как знание здравого смысла.

    Фрагменты кода для веб-мастеров

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

    Установка DirectoryIndex

    Команда для DirectoryIndex обычно используется в одной строке. Вы можете указать Apache, какие документы должны изначально рассматриваться как “главный” документ. По умолчанию это будет целевые элементы, такие как index.html, index.php, index.asp и другие индексные файлы. Но используя этот фрагмент кода, который я скопировал ниже, у вас есть возможность сделать из этого корневого документа все что угодно.

    DirectoryIndex index.html index.cgi index.php 

    Порядок документов должен начинаться с самых важных и переходить по рядам к наименее важным. Так что, если у нас нет файла HTML или CGI, то запасной вариант перейдет к index.php. И вы могли бы даже назвать эти файлы home.php или же someotherfile.php и это все правильный синтаксис.

    Force WWW или не WWW поддомен

    Google может работать с обеими версиями домена вашего сайта, если вы не укажете www.domain.com или просто domain.com. По моему опыту, это лучшая практика выберите один из них и установите его как единственный выбор через .htaccess. Тогда Google не будет индексировать различные URL-адреса, некоторые из которых указывают на поддомен WWW, а другие - нет..

    # Принудительное использование WWW субдомена RewriteEngine в RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Нет субдомена RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301] 

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

    Принудительная загрузка файлов мультимедиа

    Еще один довольно важный фрагмент позволяет принуждать определенные типы носителей к загрузить вместо отображения в браузере. Я сразу же могу подумать о документах PDF и аудиофайлах MP3, которые могут быть представлены в загружаемом формате, но как вы убедитесь, что они доступны для скачивания? Я нашел похожую статью, опубликованную в Htaccess Guide, в которой описывается этот фрагмент кода.

    Приложение AddType / октет-поток .zip .mp3 .mp4 

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

    Пользовательские документы об ошибках

    Последнее, что я хочу добавить, - это полный шаблон документов об ошибках. Обычно эти числовые коды видны только на стороне сервера. Но есть много этих документов об ошибках, с которыми вы должны быть знакомы. Несколько примеров могут быть Ошибки 403/404 и 301 перенаправление.

    Этот шаблон кода ошибки начинается с 100 и движется вверх в 500 ошибок. Обратите внимание, что вам, очевидно, не нужно все это. Потребуются только самые распространенные ошибки и, возможно, несколько неясных фрагментов, если вы чувствуете необходимость.

    Если вы не узнаете код, просто посмотрите его в Википедии, чтобы лучше понять.

    ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED 
    Интернет .htaccess Веб-приложения
    • Htaccess Builder
    • .генератор перенаправления htaccess
    • .htaccessEditor - создает файл .htaccess
    • Мод переписать генератор по GenerateIt.net
    Другие полезные ресурсы
    • .htaccess в Httpd Wiki
    • Официальная документация Apache htaccess
    • Спросите у Apache Blog - Архив Htaccess
    • Ultimate Руководство по htaccess и mod_rewrite
    • Все, что вы когда-либо хотели знать о правилах Mod_Rewrite, но боялись спросить

    Последние мысли

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

    Если у вас есть другие идеи или предложения по управлению .htaccess, пожалуйста, поделитесь с нами в разделе пост-обсуждения ниже.