Order allow,deny
</FilesMatch>
# Don’t show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 «The requested file favicon.ico was not found.
</Files>
# Set the default handler.
DirectoryIndex index.php index.html index.htm
# Override PHP settings that cannot be changed at runtime. See
# sites/default/default.settings.php and drupal_initialize_variables() in
# includes/bootstrap.inc for settings that can be changed at runtime.
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag session.

php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation off
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# Block access to «hidden» directories whose names begin with a period. (.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ — [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ — [T=text/javascript,E=no-gzip:1]
<FilesMatch «(\.js\.gz|\.css\.gz)$»>
# Serve correct encoding type.
Header append Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
</IfModule>
Создать файл htaccess, генератор файлов htaccess онлайн
Создание htaccess для сайта
Для сайтов работающих на серверах Apache есть возможность настроить свой проект с помощью .htaccess. Этот файл указывает веб-серверу как нужно себя вести в этой папке и ее подкаталогах.
При создании файла Hypertext Access обычно возникают проблемы, которые не дают работать сайту. Большинство ошибок возникает из-за лишних пробелов или отсутствия нужных запятых. site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
Настройка 301 редиректа для сайта
Единственная функция где могут возникнуть проблемы у пользователей. Поэтому я решил описать подробную инструкции. Если вы выполните последовательность, описанную ниже, вы сможете выполнить настройку редиректов правильно.
- Вставляем список старых URL адресов в первое поле (каждый адрес с новой строки).
- Список новых URL вставьте во второе текстовое поле (каждый url с новой строки).
- Нажимаем кнопку «Создать»
- Копируем полученный код и вставляем в свой файл htaccess.
Возможности инструмента
Функционал инструмента включает только самые полезные настройки, которыми пользуюсь сам.
- настройка перенаправления с www, http и с другого домена;
- настройка 301 редиректа;
- установка страниц с ошибками сервера;
- включение отображения ошибок php кода;
- добавление слешей в конец url;
- замена «индексных» страниц (index.
php, index.html) на слеш;
- удаление лишних слешей в URL страницы;
- защита интернет-ресурса от спам ссылок.
htaccess — файл apache для сайта
Наш хостинг в качестве веб-сервера использует Apache. Данное ПО осуществляет обработку http-запросов и выдает результат, соответствующий обработанному запросу – это может быть html-документ, картинки, файлы и многое другое. Apache является основой для большинства сайтов в мире (около 90% ресурсов в Интернете используют данный веб-сервер) и свою популярность он приобрел благодаря своей функциональности и надежности. Apache легко интегрируется с широко применяемыми СУБД (к примеру MySQL) и интерпретаторами таких популярных языков как PHP и Perl.
Вы, как потребитель услуг хостинга сайтов (или виртуального хостинга), можете легко сконфигурировать веб-сервер под нужды своего сайта, благодаря гибкой настройки Apache, допускающей децентрализованное управление конфигурацией с помощью специально предназначенного для этого файла . htaccess. Данный файл переназначает многие директивы из главного файла конфигурации веб-сервера Apache httpd.conf для вашего сайта или отдельных страниц. Однако, возможен случай ограничения доступа для пользователей к определенным директивам.
Справка: .htaccess
Файл .htaccess может быть размещён в любом каталоге. Действие его директив распространяется на каталог, в котором располагается, и на его дочерние каталоги (если эти директивы не переопределены в файле .htaccess, находящемся в дочернем каталоге). При каждом обращении к веб-серверу .htaccess читается заново, поэтому изменения, которые были внесены Вами в этот файл, сразу же вступают в силу. Так же файлы .htaccess не доступны пользователю из браузера, поскольку они являются служебными. (.+)\.html$ http://www.website.com/$1.php [R=301,L]
Все вышеперечисленные правила предназначены для размещения в .htaccess в корневой папке сайта. При размещении в другом месте может потребоваться небольшая настройка.
Установка индексной страницы по умолчанию в .htaccess
4241 Посещений
В данной статье, мы поговорим об установке индексной страницы, а также, о самом понятии индексная страница или файл. Начнем с того, что индексная страница или файл, это страница, которая открывается по умолчанию, когда пользователь делает запрос не к конкретному файлу, а через веб к каталогу.
Например, когда пользователь делает запрос на http://books/price-list/, где price-list это и есть название каталога, индексный файл это та страница, которая будет отображена при запросе к каталогу, но без указания имени конкретного файла.
Существует список тех файлов, что по умолчанию являются индексными: index.html, index.htm, index.php, index.php3, index.phtml, index.shtml, default.htm или default.html.
Если же вам необходимо, чтобы в качестве индексного файла открывался какой-то иной или произвольный файл, тогда вам нужно придерживаться следующей инструкции. Откройте файл .htaccess и пропишите в соответствующем каталоге:
DirectoryIndex имя файла
Например: пользователь дает запрос на http://books/price-list/, таким образом откроется индексный файл index.html. Если же вам нужно чтобы открылась страница myprice.php, пропишите это так:
DirectoryIndex myprice.php
Тогда вы получите желаемый результат.
Как правильно убрать .

Такое, присуще всем HTML сайтам и тут, нет ничего страшного. С точки зрения SEO, поисковые системы не относяться негативно к сайтам, у которых на конце URL-адреса есть расширение .html
Однако, с точки зрения юзабилити и эстетики, можно убрать на конце страницы, расширение .html
Поэтому, владельцы HTML сайтов, часто задаются вопросом ,а как убрать .html в конце адреса каждой веб-страницы?
Если у вас HTML сайт, или сайт на конструкторе сайтов Mobirise, вам нужно создать файл .htaccess и разместить его в корень вашего сайта на хостинге. Создать файл .htaccess, можно в любом текстовом редакторе. Однако, лучше это сделать в программе Notepad++ или аналогичной.
1-й Вариант файла .htaccess — самый оптимальный вариант.
Способ для HTML сайтов. В том числе и для тех сайтов, которые созданы в конструкторе сайтов Mobirise.
Файл . index\.html$ https://ВАШ_САЙТ/ [R=301,L]
Redirect 301 /index https://ВАШ_САЙТ
Где указанно ВАШ_САЙТ, необходимо указать URL вашего сайта. Если код не заработает, вставьте в самом начале следующую строку:
Options +FollowSymLinks -MultiViewsОднако, зачастую, этого не нужно. При этом, все зависит от каждого хостинга.
Файл .htaccess, нужно сохранить со следующим именем:
.htaccess
При этом, он должен быть без расширения. Сохраняйте его, БЕЗ расширения на конце файла! Если файл сохранился у вас с расширением (часто, это расширение .txt), выберите Переименовать файл и удалите расширение (при условии, если у вас в системе, настроено отображение расширений на конце файлов). При сообщении системы о том, что фал может перестать работать, Соглашаемся и подтверждаем действие. Вот скрин, как должен выглядеть сохраненный файл:
Данный код, что приведен выше, позволит вам не только убрать .html на конце страниц, а и удалить дубль главной страницы index. /]$ %{REQUEST_URI}.html [QSA,L]
При этом, 2-й и 3-й варианты, не удаляют дубль на главную страницу. При желании, вы можете добавить 301 редирект, в конце содержимого кода (через пробел на одну строку в конце основного кода, по аналогу с первым вариантом):
Redirect 301 /index https://ВАШ_САЙТ
Где вместо ВАШ_САЙТ, указываем URL на свою главную страницу. Если не настроить 301 редирект, ваша главная страница сайта, будет открываться приблизительно так:
Или так:
На заметку.
Если у вас сайт на Mobirise, есть инструкция на официальном сайте Mobirise с информацией, как убрать .html на конце страницы. В принципе, если вышеприведенные варианты не сработают, воспользуйтесь данным способом, как последним вариантом.
Обратите внимание!
Уже неоднократно сталкиваюсь, когда пользователи создают данный файл (файл .htaccess), с расширением на конце. Нередко, встречаю .txt на конце. Вот пример неверного файла:
Это — ОШИБКА. На конце файла, НЕ должно быть расширения. Только, название .htaccess
На хостинге, файл .htaccess, будет выглядеть так:
Файлы .htaccess в данной заметке, применимы для всех HTML сайтов, в том числе и для сайтов, созданных в конструкторе Mobirise, что позволяет убрать html из url страниц. Способ рабочий и используется мною на всех сайтах HTML. Однако, при создании файла .htaccess, нет универсальных решений. Некоторые хостинги, не дают доступ к редактированию/созданию файла .htaccess и/или вносят ряд ограничений. При этом, в большинстве случаев, приведенные выше варианты, самые оптимальные и универсальные.
Нужен стабильный, безопасный и недорогой хостинг?
Безопасный, стабильный и доступный по цене хостинг. Узнать больше…
Добавлено 22.02.2021
По просьбе пользователя в комментарии, добавляю вариант для тех, кому нужно убрать полностью index.html на всех страницах сайта. (.*)/index\.html$ /$1/ [R=301,L]
Повторюсь, что настройки .htaccess, сильно зависят от каждого хостинга. Если у вас возникают проблемы с настройкой .htaccess на вашем хостинге, обратитесь за помощью к техподдержке своего хостинга.
Если у вас многоязычная версия сайта, созданная в конструкторе сайтов Mobirise, ознакомьтесь с основными моментами, которые нужно учитывать при создании многоязычной версии сайта в конструкторе Mobirise: «Как создать многоязычную версию сайта в Mobirise?».
Если будут вопросы, поправки и дополнения – оставляйте комментарии.
Как написать .htaccess файл для сайта
Файл .htaccess являются по своему назначению конфигурационным файлом уровня каталога(директории) для web сервера Apache. Это означает, что директивы из этого файла исполняются Apache локально только при обращении к директории, содержащий этот файл. Область действия этих директив распространяется только на каталог, в котором расположен файл, и на вложенные каталоги, до тех пор пока они не будут переопределены в других файлах . htaccess из вложенных каталогов. Файл.htaccess перечитывается при каждом обращении к веб-серверу, так что изменения, внесенные в этот файл, вступают в силу немедленно.
Таки образом apache предоставляет нам удобный инструмент конфигурации на уровне директорий сайта. Это расширяет наши возможности так как не все настройки удобно делать на глобальному уровне и на уровне виртуального хоста. Так же на хостингах, владелец сайта, как правило, не имеет возможности выполнять настройки apache на глобальном уровне и на уровне виртуального хоста, но у него может быть возможность задать требуемые настройки на уровне каталогов сайта. Для того что бы apache принимал и исполнял директивы из файлов .htaccess каталогов сайта нужно, что бы на глобальном уровне или на уровне виртуального хоста apache это было разрешено для сайта.
Делается это разрешение при помощи следующего блока кода:
<Directory /home/my_site/www> AllowOverride All #Другие директивы ... </Directory>
Здесь в теге <Directory> указывается физический путь на сервере до корня вашего сайта, и внутри тега указывается директива AllowOverride. Эта директива может быть установлена в None, чтобы сервер не читал файл .htaccess. Если она установлена в All — сервер будет допускать все директивы .htaccess файла. Значение по умолчанию: AllowOverride All.
Теперь пару слов о названии файла .htaccess. Этот файл может называться и по другому, и это тоже устанавливается в глобальном конфиге apache директивой AccessFileName. По умолчанию эта директива установлена в конфиге как AccessFileName .htaccess, и это значение обычно никто не меняет, но вы должны знать, что изменить его на другое возможно.
Синтаксис файлов .htaccess в общем случае аналогичен синтаксису главного файла конфигурации apache. Однако, администратор может ограничивать для пользователей доступ к тем или иным директивам. То есть, несмотря на то, что команда, в принципе, может исполняться из . htaccess, администратор может запретить доступ к конкретной директиве. Учитывайте это при работе. Также хочу заметить такой момент, когда вы пишите директивы работающие с каталогами? то в главных конфигурационных файлах apache их нужно оборачивать в тег <Directory /path/…> с указанием каталога к которому они применимы, однако при написании этих директив в .htaccess файле уже не нужно их оборачивать в тег <Directory>, если вы хотите что бы они применялись к текущему каталогу файла .htaccess, если же вы хотите применить их только к вложенному каталогу то тогда, опять же, нужно обернуть в тег <Directory>.
Для чего мы можем использовать .htaccess файл. Вариантов здесь немало, вот самые распространенные из них:
1.Для управления разрешениями на доступы к каталогам сайта (запаролить директорию, запретить доступ к файлам определенного формата, или доступ к сайту в определенный промежуток времени, запретить или открыть доступ с определенных IP адресов, управлять роботами поисковиков)
2. Для перезаписи текущего URL на новый в зависимости от условий (см. также описание mod_rewrite сервера Apache и логику его обработки правил )
3.Для явного указания кодировки сайта.
4.Для разрешения или запрета просмотра файлов сайта
5.Для защиты от хотлинка
6.Для выполнения ридирктов
7.Для задания своих страниц ошибок
8.Для переопределения индексного файла
9…. и многое другое.
Давайте для примера напишем некий обобщенный файл .htaccess.
В него мы соберем наиболее распространенные случаи использования директив и добавим к ним комментарии. И из этого шаблона путем удаления не нужного вы сможете всегда подготовить конкретный .htaccess для ваших задач. Здесь символ # — это символ комментария применяемый в конфигах apache.
Подробные пояснения к коду шаблона см. после него.
# .htaccess начало шаблона # Установка временной зоны SetEnv TZ Europe/Moscow # Установим принудительно кодировку страниц сайта AddDefaultCharset UTF-8 # Зададим index файл который будет # отдаваться если запрошенный не найден DirectoryIndex index.php index.html # Запретим пользователям просматривать файлы директории Options -Indexes # Разрешим следовать за символическими связями в этом каталоге Options +FollowSymLinks # Разрешение доступа только для указанных IP Order Deny,Allow Deny from all Allow from x.x.x.x # Или запрет доступа по IP Order allow,deny deny from x.x.x.x deny from x.x.x.x allow from all # Запретить всем, то только # одну эту строку указать Deny from all # Закрыть доступ к вложенной директории относительно текущего файла # можно так, или положив туда отдельный .htaccess файл <Directory /passwds/> Order Deny,Allow Deny from All </Directory> # Закрыть директорию паролем AuthType Basic AuthName "Enter a password" #путь до файла с паролями и пользователями AuthUserFile /full/path/to/.htpasswd require valid-user # или закрыть вложенную директорию паролем <Directory /passwds/> AuthType Basic AuthName "Enter a password" #путь до файла с паролями и пользователями (абсолютный или относительно ServerRoot) AuthUserFile /full/path/to/.
htpasswd require valid-user </Directory> # Запрет на доступ для файла .htpasswd # для всех посетителей кроме разрешенных IP <Files ".htpasswd"> Order Deny,Allow Deny from all Allow from x.x.x.x, x.x.x.xx </Files> # Блок если нужно отключить обработку PHP # можно и для <Directory> задать <IfModule mod_php5.c> php_value engine off </IfModule> <IfModule mod_php4.c> php_value engine off </IfModule> # # Блок изменение настроек PHP # некоторые директивы зависят от версии PHP #php_flag register_globals off #php_value memory_limit 16M #for files uploading - if needed #php_value max_execution_time 500 #php_value max_input_time 500 #php_value upload_max_filesize 30M #php_value post_max_size 30M #php_flag display_errors off #Настройка PHP для загрузки больших файлов до 256M php_value memory_limit 256M php_value upload_max_filesize 256M php_value post_max_size 256M # # Перезапись URL <IfModule mod_rewrite.c> RewriteEngine On # установить корневой URL как / RewriteBase / #Все запросы с HTTP на HTTPS RewriteCond %{HTTPS} =off RewriteRule (.
$ RewriteCond %{HTTP_REFERER} !google. [NC] RewriteCond %{HTTP_REFERER} !yandex. [NC] RewriteCond %{HTTP_REFERER} !search?q=cache [NC] RewriteCond %{HTTP_REFERER} !msn. [NC] RewriteCond %{HTTP_REFERER} !yahoo. [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L] # </IfModule> # Вывод 404 ошибки если выключен mod_rewrite <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> # Зададим свои страницы для ошибок ErrorDocument 404 /err_404.html ErrorDocument 403 /err_403.html # # Блок кода редиректа на мобильную версию сайта # Как вариант привожу здесь, больше для примера <ifModule mod_rewrite.c> RewriteEngine on # Проверить строку UserAgent браузера RewriteCond %{HTTP_USER_AGENT} acs [NC,OR] RewriteCond %{HTTP_USER_AGENT} alav [NC,OR] RewriteCond %{HTTP_USER_AGENT} alca [NC,OR] RewriteCond %{HTTP_USER_AGENT} amoi [NC,OR] RewriteCond %{HTTP_USER_AGENT} audi [NC,OR] RewriteCond %{HTTP_USER_AGENT} aste [NC,OR] RewriteCond %{HTTP_USER_AGENT} avan [NC,OR] RewriteCond %{HTTP_USER_AGENT} benq [NC,OR] RewriteCond %{HTTP_USER_AGENT} bird [NC,OR] RewriteCond %{HTTP_USER_AGENT} blac [NC,OR] RewriteCond %{HTTP_USER_AGENT} blaz [NC,OR] RewriteCond %{HTTP_USER_AGENT} brew [NC,OR] RewriteCond %{HTTP_USER_AGENT} cell [NC,OR] RewriteCond %{HTTP_USER_AGENT} cldc [NC,OR] RewriteCond %{HTTP_USER_AGENT} cmd- [NC,OR] RewriteCond %{HTTP_USER_AGENT} dang [NC,OR] RewriteCond %{HTTP_USER_AGENT} doco [NC,OR] RewriteCond %{HTTP_USER_AGENT} eric [NC,OR] RewriteCond %{HTTP_USER_AGENT} hipt [NC,OR] RewriteCond %{HTTP_USER_AGENT} inno [NC,OR] RewriteCond %{HTTP_USER_AGENT} ipaq [NC,OR] RewriteCond %{HTTP_USER_AGENT} java [NC,OR] RewriteCond %{HTTP_USER_AGENT} jigs [NC,OR] RewriteCond %{HTTP_USER_AGENT} kddi [NC,OR] RewriteCond %{HTTP_USER_AGENT} keji [NC,OR] RewriteCond %{HTTP_USER_AGENT} leno [NC,OR] RewriteCond %{HTTP_USER_AGENT} lg-c [NC,OR] RewriteCond %{HTTP_USER_AGENT} lg-d [NC,OR] RewriteCond %{HTTP_USER_AGENT} lg-g [NC,OR] RewriteCond %{HTTP_USER_AGENT} lge- [NC,OR] RewriteCond %{HTTP_USER_AGENT} maui [NC,OR] RewriteCond %{HTTP_USER_AGENT} maxo [NC,OR] RewriteCond %{HTTP_USER_AGENT} midp [NC,OR] RewriteCond %{HTTP_USER_AGENT} mits [NC,OR] RewriteCond %{HTTP_USER_AGENT} mmef [NC,OR] RewriteCond %{HTTP_USER_AGENT} mobi [NC,OR] RewriteCond %{HTTP_USER_AGENT} mot- [NC,OR] RewriteCond %{HTTP_USER_AGENT} moto [NC,OR] RewriteCond %{HTTP_USER_AGENT} mwbp [NC,OR] RewriteCond %{HTTP_USER_AGENT} nec- [NC,OR] RewriteCond %{HTTP_USER_AGENT} newt [NC,OR] RewriteCond %{HTTP_USER_AGENT} noki [NC,OR] RewriteCond %{HTTP_USER_AGENT} opwv [NC,OR] RewriteCond %{HTTP_USER_AGENT} palm [NC,OR] RewriteCond %{HTTP_USER_AGENT} pana [NC,OR] RewriteCond %{HTTP_USER_AGENT} pant [NC,OR] RewriteCond %{HTTP_USER_AGENT} pdxg [NC,OR] RewriteCond %{HTTP_USER_AGENT} phil [NC,OR] RewriteCond %{HTTP_USER_AGENT} play [NC,OR] RewriteCond %{HTTP_USER_AGENT} pluc [NC,OR] RewriteCond %{HTTP_USER_AGENT} port [NC,OR] RewriteCond %{HTTP_USER_AGENT} prox [NC,OR] RewriteCond %{HTTP_USER_AGENT} qtek [NC,OR] RewriteCond %{HTTP_USER_AGENT} qwap [NC,OR] RewriteCond %{HTTP_USER_AGENT} sage [NC,OR] RewriteCond %{HTTP_USER_AGENT} sams [NC,OR] RewriteCond %{HTTP_USER_AGENT} sany [NC,OR] RewriteCond %{HTTP_USER_AGENT} sch- [NC,OR] RewriteCond %{HTTP_USER_AGENT} sec- [NC,OR] RewriteCond %{HTTP_USER_AGENT} send [NC,OR] RewriteCond %{HTTP_USER_AGENT} seri [NC,OR] RewriteCond %{HTTP_USER_AGENT} sgh- [NC,OR] RewriteCond %{HTTP_USER_AGENT} shar [NC,OR] RewriteCond %{HTTP_USER_AGENT} sie- [NC,OR] RewriteCond %{HTTP_USER_AGENT} siem [NC,OR] RewriteCond %{HTTP_USER_AGENT} smal [NC,OR] RewriteCond %{HTTP_USER_AGENT} smar [NC,OR] RewriteCond %{HTTP_USER_AGENT} sony [NC,OR] RewriteCond %{HTTP_USER_AGENT} sph- [NC,OR] RewriteCond %{HTTP_USER_AGENT} symb [NC,OR] RewriteCond %{HTTP_USER_AGENT} t-mo [NC,OR] RewriteCond %{HTTP_USER_AGENT} teli [NC,OR] RewriteCond %{HTTP_USER_AGENT} tim- [NC,OR] RewriteCond %{HTTP_USER_AGENT} tosh [NC,OR] RewriteCond %{HTTP_USER_AGENT} tsm- [NC,OR] RewriteCond %{HTTP_USER_AGENT} upg1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} upsi [NC,OR] RewriteCond %{HTTP_USER_AGENT} vk-v [NC,OR] RewriteCond %{HTTP_USER_AGENT} voda [NC,OR] RewriteCond %{HTTP_USER_AGENT} w3cs [NC,OR] RewriteCond %{HTTP_USER_AGENT} wap- [NC,OR] RewriteCond %{HTTP_USER_AGENT} wapa [NC,OR] RewriteCond %{HTTP_USER_AGENT} wapi [NC,OR] RewriteCond %{HTTP_USER_AGENT} wapp [NC,OR] RewriteCond %{HTTP_USER_AGENT} wapr [NC,OR] RewriteCond %{HTTP_USER_AGENT} webc [NC,OR] RewriteCond %{HTTP_USER_AGENT} winw [NC,OR] RewriteCond %{HTTP_USER_AGENT} winw [NC,OR] RewriteCond %{HTTP_USER_AGENT} xda [NC,OR] RewriteCond %{HTTP_USER_AGENT} xda- [NC,OR] RewriteCond %{HTTP_USER_AGENT} up.
browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} up.link [NC,OR] RewriteCond %{HTTP_USER_AGENT} windows.ce [NC,OR] RewriteCond %{HTTP_USER_AGENT} iemobile [NC,OR] RewriteCond %{HTTP_USER_AGENT} mini [NC,OR] RewriteCond %{HTTP_USER_AGENT} mmp [NC,OR] RewriteCond %{HTTP_USER_AGENT} symbian [NC,OR] RewriteCond %{HTTP_USER_AGENT} midp [NC,OR] RewriteCond %{HTTP_USER_AGENT} wap [NC,OR] RewriteCond %{HTTP_USER_AGENT} phone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ipad [NC,OR] RewriteCond %{HTTP_USER_AGENT} iphone [NC,OR] RewriteCond %{HTTP_USER_AGENT} iPad [NC,OR] RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ipod [NC,OR] RewriteCond %{HTTP_USER_AGENT} iPod [NC,OR] RewriteCond %{HTTP_USER_AGENT} pocket [NC,OR] RewriteCond %{HTTP_USER_AGENT} mobile [NC,OR] RewriteCond %{HTTP_USER_AGENT} android [NC,OR] RewriteCond %{HTTP_USER_AGENT} Android [NC,OR] RewriteCond %{HTTP_USER_AGENT} pda [NC,OR] RewriteCond %{HTTP_USER_AGENT} PPC [NC,OR] RewriteCond %{HTTP_USER_AGENT} Series60 [NC,OR] RewriteCond %{HTTP_USER_AGENT} Opera.
Mini [NC,OR] RewriteCond %{HTTP_USER_AGENT} Moby [NC,OR] RewriteCond %{HTTP_USER_AGENT} Mobi [NC,OR] # Проверить служебные заголовки, отсылаемые браузером RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml" [NC,OR] RewriteCond %{HTTP_ACCEPT} "application/vnd.wap.xhtml+xml" [NC,OR] # Проверить исключения RewriteCond %{HTTP_USER_AGENT} !windows.nt [NC] RewriteCond %{HTTP_USER_AGENT} !bsd [NC] RewriteCond %{HTTP_USER_AGENT} !x11 [NC] RewriteCond %{HTTP_USER_AGENT} !unix [NC] RewriteCond %{HTTP_USER_AGENT} !macos [NC] RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] RewriteCond %{HTTP_USER_AGENT} !playstation [NC] RewriteCond %{HTTP_USER_AGENT} !google [NC] RewriteCond %{HTTP_USER_AGENT} !yandex [NC] RewriteCond %{HTTP_USER_AGENT} !bot [NC] RewriteCond %{HTTP_USER_AGENT} !libwww [NC] RewriteCond %{HTTP_USER_AGENT} !msn [NC] RewriteCond %{HTTP_USER_AGENT} !america [NC] RewriteCond %{HTTP_USER_AGENT} !avant [NC] RewriteCond %{HTTP_USER_AGENT} !download [NC] RewriteCond %{HTTP_USER_AGENT} !fdm [NC] RewriteCond %{HTTP_USER_AGENT} !maui [NC] RewriteCond %{HTTP_USER_AGENT} !webmoney [NC] RewriteCond %{HTTP_USER_AGENT} !windows-media-player [NC] # При выполнении условий переадресация на мобильную версию сайта RewriteRule ^(.
$ http://m.%1 [R=302,L] </ifModule> # .htaccess конец шаблона
Разъяснения по коду шаблона:
Расшифрую некоторые флаги из директив:
- RewriteCond … [NC] — NC значит регистр нечувствительное сравнение выполнять
- RewriteCond … [NC,OR] — NC см. выше, OR — значит объединять RewriteCond через OR, по умолчанию если ничего не указана то RewriteCond объединяются через AND оператор.
- RewriteRule … [L] — L значит закончить (остановить обработку) на этом RewriteRule правиле любые дальнейшие преобразования URL, т.е. последующие RewriteRule не выполнять.
- RewriteRule … [L,R=302] — L см. выше, R=302 значит выполнить редирект с кодом 302 на преобразованный URL
- RewriteRule … [R=301,QSA,L] — L и R см. выше, QSA — при преобразовании URL выполнять при стыковку заданных частей, а не замену.
- RewriteRule … [F] — F, значит отказать в выдачи результата по этому URL кодом 403 Forbidden.
- RewriteRule . — [G,L] G|Gone — [G] flag значит отдать код 410 Gone status — рекомендация забыть этот URL
AuthUserFile — задает путь к файлу с паролями для http авторизации пользователя. Путь может быть абсолютный от корня файловой системы Linux сервера или относительный от ServerRoot apache. В Ubuntu ServerRoot «/etc/apache2» по умолчанию. При задании относительного пути от ServerRoot apache начальный слеш в пути не указывается, иначе путь будет восприниматься как абсолютный от корня Linux. Также, если путь содержит недопустимые символы и пробелы его нужно заключать в кавычки, это общее правило.
Order, Deny, Allow
Теперь еще раз, но уже более детально, хотелось бы вернуться к директивам управление доступом: Order, Deny, Allow и более детально описать ее синтаксис и логику.
Директива Order синтаксис: Order [Deny,Allow] или [Allow,Deny]
По умолчанию директива Order имеет порядок: Deny,Allow. Обратите внимание, что Deny,Allow пишутся без пробела.
В зависимости от того в каком порядке указаны директивы Deny,Allow или Allow,Deny меняется логика работы.
Если Deny,Allow то запрещается доступ со всех IP кроме указанных, если Allow,Deny разрешается доступ со всех IP кроме оговоренных. Далее идут секции описания для доступа и запрета. Ключевое слово all означает со всех IP.
Например, что бы запретить (блокировать) доступ с IP x.x.x.x и x.x.x.xx и разрешить доступ всем остальным необходимо добавить в .htaccess следующий код:
# Разрешить ВСЕМ кроме указанных IP
Order Allow,Deny
Allow from all
Deny from x.x.x.x x.x.x.xx
Обратите внимание что IP записаны через пробел. Можно также указать IP как IP/маска.
Для обратной ситуации, что бы запретить доступ со всех IP кроме x. x.x.x и x.x.x.xx нам необходимо добавить в .htaccess следующий код:
# Запретить ВСЕМ кроме указанных IP
Order Deny,Allow
Deny from all
Allow from x.x.x.x x.x.x.xx
Запрет или разрешение можно указывать и на отдельный файл или группы файлов. Например, что бы запретить доступ всех кроме IP x.x.x.x к файлу passwd.html, который расположен в текущей директории.
# Запретить файл passwd.html ВСЕМ кроме указанных IP
<Files «passwd.html»>
Order Deny,Allow
Deny from all
Allow from x.x.x.x
</Files>
Аналогично можно запретить или разрешить доступ к определенной группе файлов описав их через регулярное выражение. Например, к файлам с расширением «.key»:
# Запретить файлы *.key ВСЕМ кроме указанных IP
<Files «\. (key)$»>
Order Deny,Allow
Deny from all
Allow from x.x.x.x
</Files>
Шаблон получился большой, но на практике нужно стремиться использовать только действительно крайне необходимые директивы. Особенно осторожно нужно поступать с внешними редиректами, так как они приводят к общему увеличению времени обработки запроса. Поэтому делайте их только если они действительно необходимы. Еще хочется предостеречь Вас от прямого копипаста директив из приведенного мною шаблона в ваши реальные конфиги. Код приведенный здесь используйте только для примера, что бы получить представление, что вообще возможно и как это будет выглядеть. В свои же файлы вставляете только те директивы, синтаксис которых вы понимаете, можете расшифровать и которые вы проверили по официальному руководству apache. Ошибки по исполнению директив из файла .htaccess смотрите в логах apache.
Как изменить страницу индекса по умолчанию в файле htaccess
Сервер ищет файлы с определенными именами в качестве первой страницы вашего веб-сайта, также известной как страница индекса . Порядок имен индексных файлов по умолчанию, который просматриваются нашими конкретными серверами: index.htm , index.html , index.php и, наконец, default.htm . Вы можете изменить имя индексного файла, который ищет ваша учетная запись, изменив файл .htaccess .Возможно, вы хотите иметь конкретное пользовательское имя для своего индексного файла или, может быть, вы переходите с другого хоста, а страница индекса имеет другое имя. Таким образом, ваши внутренние ссылки не будут нарушены при переименовании индексного файла.
Что такое файл htaccess?
The. htaccess Файл — это скрытый текстовый файл в вашей учетной записи хостинга, который может быть очень мощным. Он разработан таким образом, что вы можете изменить его, чтобы изменить поведение вашего веб-сайта, которое обычно требует более высокий доступ за пределами вашей учетной записи.Он действует как связующее звено между вашим доменом и сервером и может выполнять множество функций.
Подробнее о htaccess
Изменение индексного файла по умолчанию с помощью htaccess
- Войдите в свою cPanel.
- Найдите категорию Files и щелкните значок File Manager .
- Щелкните Settings в правом верхнем углу.
- Выберите корень документа для домена, с которым вы работаете, и убедитесь, что установлен флажок рядом с Показать скрытые файлы .Нажмите кнопку Сохранить .
- Найдите файл .htaccess и щелкните его правой кнопкой мыши. Это вызывает меню. Найдите и щелкните опцию Edit .
- Вам может быть показано всплывающее окно. Щелкните на кнопке Edit .
- Теперь вы в редакторе htaccess. Вставьте следующий код вверху страницы, чтобы настроить желаемую страницу индекса. В нашем примере ниже мы решили сделать индексную страницу наших папок первой.
html.
# Альтернативная индексная страница по умолчанию DirectoryIndex first.html
Вы также можете указать несколько файлов в конфигурации. Файл будет читаться слева направо и проверять их наличие в указанном порядке. В этом примере мы добавляем в список index.htm, index.html и index.php. Сначала сервер проверит файл first.html, если он не найдет файл с таким именем, он перейдет к index.htm и так далее.
# Альтернативные страницы индекса по умолчанию DirectoryIndex first.html index.htm index.html index.php
- Не забудьте нажать кнопку Save Changes в верхнем правом углу, чтобы сохранить новую конфигурацию htaccess.
Быстрый и грязный доступ к .htaccess для небольших личных сайтов
Я размещаю свой личный сайт на общем экземпляре Dreamhost. Мне он нравится, потому что он относительно недорогой, у меня небольшой трафик, и я не делаю ничего особо сложного. Наличие полного корневого доступа при размещении на виртуальном частном сервере (VPS) или выделенном сервере не имеет смысла для того, что я делаю. Однако я по-прежнему хочу иметь некоторый контроль на уровне сервера над тем, что и как доступно на моем веб-сайте. Вот где появляется
.htaccess
.
Обновление: по состоянию на начало 2019 года на моем личном сайте используется установка nginx на Digital Ocean, а не установка apache на Dreamhost. Пока что мне нравится Digital Ocean намного больше, чего бы это ни стоило. 🙂
Многие варианты хостинга используют серверы Apache HTTP на внутренней стороне для обслуживания вашего веб-сайта.На самом базовом уровне ваш веб-сайт представляет собой набор файлов, хранящихся где-то на компьютере. Вы хотите, чтобы люди на других компьютерах могли получить доступ к этим файлам через Интернет. Веб-сервер — это программное обеспечение, которое принимает запросы, находит нужные файлы и возвращает контент клиенту. .htaccess
— это файл, используемый Apache, чтобы дать вам больше контроля над обработкой этих запросов. .htaccess Файлы
устанавливают конфигурацию для всех запросов файлов в каталоге, в котором он находится.
Почему это должно меня волновать?
Ваш веб-сайт сможет работать без файла .htaccess
для точной настройки конфигурации вашего сервера. Но использование его функций может позволить сделать косметические улучшения, такие как принудительное добавление или удаление www
из вашего URL-адреса или устранение необходимости в расширениях файлов .html
при ссылках на страницы вашего сайта.
Он также может обеспечить преимущества безопасности. Если вы используете git для управления развертыванием своего сайта, вы можете случайно раскрыть учетные данные или конфиденциальную информацию в открытом Интернете.Вы также можете заставить людей использовать https
при подключении к вашему сайту, что, помимо того, что является правильным шагом с точки зрения безопасности, может помочь повысить ваш рейтинг SEO.
Некоторые люди сразу же отмечают, что использование .htaccess
для настройки вместо использования основной конфигурации Apache приводит к снижению производительности. Это снижение производительности ухудшается, когда ваш сервер находится под высокой нагрузкой. В общем, вы, вероятно, больше всего будете полагаться на
.htaccess
, если вы работаете в среде общего хостинга.Если вы просто хотите разместить небольшой сайт-портфолио или игрушечное приложение, погрузиться в облачные вычисления, получить root-доступ и стать вашим собственным системным администратором Apache, вероятно, будет излишним.
Если вы привлекаете большой трафик и / или испытываете трудности с высокой нагрузкой на свой сервер, вам, вероятно, следует переместить на VPS, где у вас есть root-доступ, и использовать конфигурацию основного сервера. Если это проблема для вас, вероятно, вы выходите за рамки одной операции и должны привлечь кого-нибудь, кто поможет с надежностью сайта.Но если вы просто запускаете небольшой, в основном статический сайт, не стоит беспокоиться о падении производительности в результате использования .htaccess
.
.
более ограничен по объему, чем ваша основная конфигурация Apache в htaccess
httpd.conf
. Вы не сможете делать такие вещи, как операции на уровне каталогов с .htaccess
. Если вы много работаете, когда хотите контролировать доступ к своему сайту на уровне каталогов, более надежный вариант хостинга имеет смысл.Но если вы не работаете в сложной среде и не хотите много настраивать надежность сайта, у вас все будет хорошо без корневого доступа.
Вот некоторые вещи, для которых вы можете использовать .htaccess
. Не стесняйтесь копировать / вставлять прямо отсюда, так как я скопировал / вставил от тех, кто был до меня.
Многие из этих фрагментов требуют включения RewriteEngine
. Вам нужно сделать это только один раз для каждого файла, и вы можете поместить в него все свои запросы на перезапись.Для простоты копирования / вставки я включаю RewriteEngine On
во все соответствующие фрагменты. Убедитесь, что вы не копируете его более одного раза.
Защитите себя от кражи трафика
Кража полосы пропускания или хотлинкинг — это практика ссылки на изображение на чужом веб-сайте и его собственное отображение. При этом используется пропускная способность сервера, к которому вы подключаетесь, а не вашего собственного. Это довольно грубо!
Тем не менее, вы можете защитить свой сайт от ссылок на изображения.http (s)?: // (. + \.)? mysite \ .com [NC] RewriteRule. * \. (Jp (e)? G | gif | bmp | png) $ https://imgur.com/ZtXiCBw.gif [L, R] Войти в полноэкранный режимВыйти из полноэкранного режима
(не забудьте заменить mysite \ .com
на ваш реальный URL)
Приведенный выше код проверяет, откуда исходит запрос, или от реферера . Если референт не является вашим сайтом (или пустым), вместо него будет отображаться любое изображение, на которое вы перенаправляете.
Приведенная выше ссылка перенаправляет на следующее изображение на imgur:
Любой, кто столкнется с этим достаточно быстро, научится перестать красть у вас полосу пропускания 🙂
Улучшения SEO
Перенаправить старые страницы на новое место
Одна из самых простых и полезных вещей, которые вы можете делать с .htaccess
перенаправляет страницу, которая раньше существовала в одном месте, на новый URL. Это чрезвычайно важно для SEO. Если вы написали популярный пост в блоге и переносите его куда-нибудь, вы не хотите терять ссылочный вес — или влияние, которое ссылка оказывает на поисковую систему — только потому, что ваш контент меняет местоположение.
В общем, вы, вероятно, захотите использовать редирект 301 или 302. 301 — это постоянное перенаправление. Редирект 302 является временным, и , а не сохранит вашу ссылочную стоимость.Однако, когда вы возитесь с перенаправлениями, вы всегда должны сначала использовать 302 и тестировать свои изменения. Если все в порядке, измените его на 301. Вы должны сделать это, чтобы случайно не перенаправить эквити ссылки из старого местоположения в неправильное место.
При форматировании строки перенаправления порядок аргументов следующий
- код состояния (301, 302, 404 и т. Д.)
- старое расположение файла
- новое расположение файла
Перенаправление 302/2016/08/02 / rad-old-blog-post / https: // newdomain.вечеринка / рад-старый-блог-сообщение /
Перенаправление 301 /menu/dessert.html https://new-restaurant-website.supply/menu/dessert/
Войти в полноэкранный режимВыйти из полноэкранного режима
Обеспечить
https
Некоторые варианты хостинга позволяют принудительно установить https
, когда люди подключаются к вашему сайту. Другие просто разрешают https
без строгого соблюдения его использования. Использование https
очень важно как для безопасности, так и для SEO, поэтому, если ваш хостинг-провайдер не обеспечивает соблюдение соединений https
, вам следует использовать .(. *) $ https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301]
Войти в полноэкранный режимВыйти из полноэкранного режима
Косметические улучшения
Не требуется
.html
Ничто так не выглядит безвкусным и устаревшим, как .html
, свисающие с конца вашего URL. Я имею в виду, я в основном шучу, но мне действительно не нравится, когда это расширение файла болтается. К счастью, это можно исправить!
RewriteEngine On
RewriteCond% {REQUEST_FILENAME}! -D
RewriteCond% {REQUEST_FILENAME} \.(. *) $ 1.html
Войти в полноэкранный режимВыйти из полноэкранного режима
Это условие проверяет, относится ли ваш запрос к допустимому каталогу в вашем проекте. Мы проверяем здесь каталоги, а не файлы, потому что запрос будет примерно таким: mysite.com/info
, что выглядит как имя каталога. Если он не может найти действительный каталог, он проверяет, существует ли действительный файл с именем info.html
. Если есть, перепишите запрос для обслуживания контента с сайта .(. *) $ http://example.com/$1 [L, R = 301]
Войти в полноэкранный режимВыйти из полноэкранного режима
Флаг [NC] здесь означает отсутствие регистра, поэтому вам не нужно беспокоиться о чувствительности к регистру.
Флаг [L] означает «Последний», что означает, что если это условие истинно, выполнить RewriteRule
и не пытаться сопоставить другие RewriteConds
или выполнять другие операции с запросом.
Флаг [R] означает «Перенаправление». Вы можете передать параметр R, чтобы установить код состояния HTTP для перенаправления.Пример [R = 302] или [R = 404].
Улучшения безопасности
Скрыть каталог
.git
Контроль версий — это фантастика даже для статических сайтов. Это может помочь вам легко вернуться к предыдущим версиям и позволяет оглядываться на эволюцию вашего кода. Однако контроль обновлений вашего сайта с помощью git push / pull может открыть уязвимость в системе безопасности. Посетители могут публично получить доступ к вашему каталогу .git
через свой браузер и просмотреть все ваше репо, включая любые секреты или ключи, которые вы можете там хранить.Если вы размещаете что-то более сложное, чем статический личный сайт, это также позволяет любому просматривать ваш исходный код и копировать вашу работу, даже если вы хотели сохранить ее конфиденциальность.
К счастью, вы можете перенаправить любые попытки запросить ваш каталог .git
.
RedirectMatch 404 /\.git
Войти в полноэкранный режимВыйти из полноэкранного режима
Просто! Здесь вы можете вернуть любой понравившийся статус. Мне лично нравится использовать 404, потому что кажется, что такого каталога даже не существует на сервере, и это может препятствовать дальнейшим попыткам доступа к аналогичным файлам.Однако и здесь 403 имеет смысл. Тебе решать.
Ограничить доступ к конфиденциальным файлам
Вероятно, вы не хотите, чтобы случайные посетители вашего сайта имели доступ к вашим файлам точек или другой конфиденциальной информации. Вы можете запретить доступ к определенным файлам для всех или разрешить / заблокировать определенные IP-адреса в .htaccess
.
Примечание. Вы не можете ограничить или разрешить доступ к каталогу уровня , используя .htaccess
. Это одна из тех операций, которые необходимо выполнить в httpd.conf
и требует root-доступа.
# Не позволять никому видеть мой файл .htaccess
<Файлы .htaccess>
Заказать разрешить, запретить
Запретить всем
Войти в полноэкранный режимВыйти из полноэкранного режима
Ключевое слово Order
здесь немного сложно, поэтому давайте рассмотрим его. Заказ
принимает один из двух аргументов. Либо разрешить, либо запретить
, либо запретить, разрешить
. Убедитесь, что в аргументе нет пробела между запятой и вторым словом.Если вы поместите туда пробел, это приведет к тому, что все запросы к вашему сайту будут иметь значение 500. Этот аргумент сообщает Apache, в каком порядке он должен обрабатывать операторы allow и deny.
allow, deny
означает, что сначала будут обрабатываться любые операторы Allow
и последними операторы Deny. Самый последний оператор переопределит все операторы, предшествующие ему. Итак, в приведенном выше примере, если вы хотите разрешить свой IP-адрес, а - только , ваш IP-адрес должен просматривать
.htaccess
через curl или браузер, вы можете включить такой оператор, как Allow from 198.51.100.254
. Однако, поскольку ваша конфигурация предписывает серверу сначала обработать все операторы Allow
, а затем переопределить их, вам все равно будет отказано в доступе, потому что Deny from all
был самым последним заказом.
И наоборот, deny, allow
сначала обрабатывает все операторы Deny
, а затем отменяет с помощью Allow
. Если вы собираетесь сделать что-то более сложное, чем запретить или разрешить доступ всем, обязательно обратите внимание на аргумент Order
и обязательно проверьте его.
Вы также можете использовать этот синтаксис для ограничения доступа к определенным методам HTTP. Например, если вы хотите, вы можете ограничить операции POST
и PUT
своей локальной сетью (LAN).
<Предел POST PUT>
Заказать отказать, разрешить
Запретить всем
Разрешить от 198.51.100.254
Войти в полноэкранный режимВыйти из полноэкранного режима
Убедитесь, что вы знаете, где находятся ваши файлы журналов. Даже если у вас нет root-доступа, вы сможете просматривать журналы доступа и ошибок для своего сайта.Журналы ошибок будут очень полезны при отладке любых неожиданных результатов или ошибок, с которыми вы столкнетесь при попытке настроить вашу конфигурацию.
плохой разделитель флагов
Если ваше сообщение об ошибке включает фразу bad flag delimiter
, вероятно, вы добавили лишний пробел в свои флаги RewriteRule
. Флаги разделяются запятыми, а не запятыми + пробелами, поэтому убедитесь, что вы отформатировали флаги следующим образом: [L, R = 301, NC]
, а не так: [L, R = 301, NC]
Некоторые операции здесь запрещены
Если ваше сообщение об ошибке содержит фразу , здесь не разрешено
, вероятно, вы пытаетесь сделать что-то, что необходимо сделать в httpd.conf
основной файл конфигурации. Вам нужно будет либо придумать другой способ достижения своей цели, либо перейти к решению, в котором у вас есть root-доступ и вы можете изменить httpd.conf
.
Для чего вы использовали .htaccess
на своих сайтах? Есть ли что-то, что вы хотите сделать с .htaccess
, но не смогли понять? Дай мне знать в комментариях!
.htaccess - Как удалить .html из URL?
Хороший вопрос, но, похоже, сбил с толку людей.Ответы почти поровну разделились между теми, кто думал, что Дэйв (ОП) сохранял свои HTML-страницы без расширения .html
, и теми, кто думал, что он сохранял их как обычно (с .html
), но хотел URL-адрес, без которого будет отображаться. Хотя вопрос можно было бы сформулировать немного лучше, я думаю, ясно, что он имел в виду. Если он сохранял страницы без .html
, его два вопроса («как удалить .html») и (как «перенаправить любой URL-адрес с.html ’) будет точно таким же вопросом! Так что в этой интерпретации нет особого смысла. Кроме того, его первый комментарий (об избежании бесконечного цикла) и его собственный ответ, похоже, подтверждают это.
Итак, давайте перефразируем вопрос и разберем задачу. Мы хотим достичь двух целей:
- Заметно удалите
.html
, если он является частью запрошенного URL (например,/page.html
) - Направьте обрезанный URL (например,
/ стр.
) обратно на фактический файл (/ стр.html
).
В этом нет ничего сложного. (Мы могли бы достичь второго, просто включив MultiViews.) Задача состоит в том, чтобы выполнить для них и без создания бесконечного цикла.
Ответ Дэйва выполнил свою работу, но он довольно запутанный и совсем не переносимый. (Извини, Дэйв.) Лукаш Хабжик, кажется, убрал ответ Анмола, и, наконец, Амит Верма улучшил их обоих. Однако никто из них не объяснил , как их решения решили основную проблему - как избежать бесконечного цикла.Насколько я понимаю, они работают, потому что переменная THE_REQUEST
содержит исходный запрос от браузера. Таким образом, условие ( RewriteCond% {THE_REQUEST}
) запускается только один раз. Поскольку он не запускается при перезаписи, вы избегаете сценария бесконечного цикла. Но тогда вы имеете дело с полным HTTP-запросом - GET
, HTTP
и всем остальным - что частично объясняет некоторые из уродливых примеров регулярных выражений на этой странице.
Я собираюсь предложить еще один подход, который, на мой взгляд, легче понять.% {REQUEST_URI} .html [КОНЕЦ]
Давайте разберемся…
Первое правило довольно простое. Условие соответствует любому URL-адресу, оканчивающемуся на .html
(или .htm
), и перенаправляет на URL-адрес без расширения имени файла. Это постоянное перенаправление , чтобы указать, что обрезанный URL-адрес является каноническим .
Второе правило тоже простое. Первое условие будет выполнено, только если запрошенное имя файла — , а не — действительный каталог (! -D
).Второй будет пройден, только если имя файла относится к допустимому файлу ( -f
) с добавленным расширением .html. Если оба условия проходят, правило перезаписи просто добавляет «.html» к имени файла. И тогда происходит волшебство… [END]
. Да, это все, что нужно для предотвращения бесконечного цикла. Документация Apache RewriteRule Flags объясняет это:
Использование флага [END] завершает не только текущий раунд перезаписи. обработка (как [L]), но также предотвращает любую последующую перезапись обработка происходит в контексте каталога (htaccess).
htaccess Учебное пособие
Сводка
В этом руководстве вы узнаете о файле .htaccess и его возможностях для улучшения вашего веб-сайта. Just Host поддерживает файлы .htaccess, однако как клиент вы несете ответственность за то, что находится в этом файле, и за то, как он изменяет ваш сайт.
Создание файла.htaccess Файл
Вы можете создать файл .htaccess на локальном компьютере или на сервере.На вашем компьютере:
Windows: Используя Блокнот, сохраните файл как .htaccess Mac OS X: Используя TextEdit, сохраните файл как «.htaccess».
Примечание. Если вы сохраните файл как .htaccess, он будет скрыт, и вы не сможете увидеть его в Finder.
Используя предпочитаемый вами FTP-клиент, загрузите файл на сервер.Файл .htaccess должен находиться в папке, в которой расположен ваш сайт, обычно в папке public_html.
На сервере
- Войдите в свою учетную запись cPanel
- Щелкните значок File Manager , расположенный в разделе Files .
- Во всплывающем окне диспетчера файлов выберите «Выбрать скрытые файлы (точечные файлы)».
Примечание. Если вы не видите это всплывающее окно, вам нужно будет щелкнуть ссылку «сбросить все настройки интерфейса» в нижней части страницы cPanel. - Во всплывающем окне диспетчера файлов выберите папку, которую вы хотите открыть, чаще всего это «Web Root (public_html / www)»
- Щелкните кнопку Go .
Примечание. Если вы уже находитесь в диспетчере файлов, вы можете добавить & showhidden = 1 в конец URL-адреса. - Щелкните значок New File , чтобы создать новый файл и назовите его .htaccess
Альтернативные индексные файлы
Возможно, вы не всегда захотите использовать index.htm или index.html в качестве индексного файла для каталога, например, если вы используете файлы PHP на своем сайте, вы можете захотеть, чтобы index.php был индексным файлом для каталога. Однако вы не ограничены «индексными» файлами. Используя .htaccess, вы можете установить foofoo.blah в качестве индексного файла, если хотите!
Альтернативные индексные файлы вводятся в список. Сервер будет работать слева направо, проверяя, существует ли каждый файл, если ни один из них не существует, он отобразит список каталогов (если, конечно, вы не отключили это).
DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm
Пользовательские страницы ошибок
Вы можете настроить свои собственные личные страницы ошибок (например, когда файл не найден) вместо использования страниц ошибок Just Host или отсутствия страницы ошибок. Это сделает ваш сайт более профессиональным.
Вы можете использовать настраиваемые страницы ошибок для любой ошибки, если вам известен ее номер (например, 404 для страницы, не найденной), добавив следующее в ваш.htaccess файл:
Ошибка Номер ошибки документа /file.html
Например, если бы у меня был файл notfound.html в корневом каталоге моего сайта и я хотел бы использовать его для ошибки 404, я бы использовал:
ErrorDocument 404 /notfound.html
Если страница с ошибкой находится не в корневом каталоге вашего сайта, вы можете ввести путь к файлу: ErrorDocument 500 /errorpages/500.html
Вот некоторые из наиболее распространенных ошибок:
401 - Требуется авторизация ошибка 400, неверный запрос 403 - Запрещено внутренняя ошибка сервера 500 404 - Неправильная страница
Остановить отображение индекса каталога
Иногда по той или иной причине в вашем каталоге нет индексного файла.Это, конечно, будет означать, что если кто-то наберет имя каталога в своем браузере, будет показан полный список всех файлов в этом каталоге. Это может быть угрозой безопасности вашего сайта.
Чтобы предотвратить это (без создания большого количества новых «индексных» файлов, вы можете ввести команду в свой файл .htaccess, чтобы остановить отображение списка каталогов:
# отключить просмотр каталогов
Параметры ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch -Indexes
# включить просмотр каталогов
Опции Все + Индексы
Запретить / разрешить определенные IP-адреса
Чтобы разрешить доступ к вашему сайту только людям с определенными IP-адресами (например, разрешить людям, использующим определенную сеть, попасть в определенный каталог), или вы можете захотеть заблокировать определенные IP-адреса (например, не допуская нарушителей к вашему сообщению. доски).Это будет работать, только если вы знаете IP-адреса, которые хотите заблокировать.
Имейте в виду, что большинство интернет-провайдеров используют динамические IP-адреса, поэтому это не всегда лучший способ ограничить / предоставить доступ.
Блокировать IP-адрес
#Deny List
заказ разрешить, запретить
deny from 123.123.123.123 # указать конкретный адрес
Отказаться от 123.123.123.123 / 30 # указать диапазон подсети
deny from 123.123. * # указать подстановочный знак IP-адреса
разрешить со всех
Разрешить только определенные IP-адреса
# Список разрешенных
заказ отклонить, разрешить
allow from 123.123.123.123 # указать конкретный адрес
разрешить от 123.123.123.123/30 # указать диапазон подсети
разрешить от 123.123. * # указать подстановочный знак IP-адреса
отрицаю от всех
Примечание. Это по-прежнему позволит сценариям использовать файлы в каталоге.
Перенаправление
В cPanel есть инструмент, который может создавать перенаправления для вас, см. Как создать перенаправление
Перенаправить из определенного файла в новый файл
Пример:
Перенаправить / redirect_from.html http://www.newsite.com/folder/redirect_to.html
В приведенном выше примере файл с именем redirect_example.html в корневом каталоге перенаправляется на URL-адрес http://www.newsite.com/folder/redirect_example.html.
Если старый файл находился в подкаталоге, вы можете использовать:
/subdirectory/redirect_from.html
WildCard Перенаправление / перенаправление из одной папки в новую папку
Redirect / redirect_from http: // www.newsite.com/redirect_to
Теперь любой запрос к вашему сайту ниже / olddirectory будет перенаправлен на новый сайт с добавлением дополнительной информации в URL-адресе, например, если кто-то набрал:
http://www.example.com/redirect_from/images/image.gif
Они будут перенаправлены на:
http://www.newsite.com/redirect_to/images/image.gif
Перенаправление (перезапись URL) с помощью Joomla
Чтобы включить перезапись URL-адресов в Joomla, вам необходимо скопировать и вставить следующий код в ваш файл .htaccess.
# По соображениям безопасности, Option followsymlinks не может быть изменен. #Options + FollowSymLinks Параметры + SymLinksIfOwnerMatch
Защита паролем
Одно из многих применений.htaccess может надежно защищать паролем каталоги на веб-сайтах.
Примечание. Если вы хотите использовать инструмент cPanel для защиты папок паролем, ознакомьтесь с нашей статьей: Защита паролем папки на вашем веб-сайте.
Файл .htaccess
Добавление защиты паролем к каталогу с помощью .htaccess занимает два этапа. Первая часть — добавить соответствующие строки в ваш.htaccess в каталоге, который вы хотите защитить. Все, что находится ниже этого каталога, будет защищено паролем:
AuthName "Название раздела"
AuthType Basic
AuthUserFile /home/username/.htpasswds
Требовать действительного пользователя
Есть несколько частей, которые вам нужно будет изменить для своего сайта. Вы должны заменить «Название раздела» названием части сайта, которую вы защищаете. E.грамм. «Личный кабинет».
/Home/username/.htpasswds следует изменить, чтобы отразить полный путь сервера к файлу .htpasswds (подробнее об этом позже). Если вы не знаете полный путь к вашему веб-пространству, проверьте cPanel Just Host. Посмотрите на левый столбец статистики на cPanel.
Файл .htpasswds
Защита каталога паролем требует немного больше усилий, чем любой другой.htaccess, потому что вы также должны создать файл, содержащий имена пользователей и пароли, которым разрешен доступ к сайту. Их следует поместить в файл, который (по умолчанию) должен называться .htpasswd. Его можно разместить в любом месте вашего веб-сайта (так как пароли зашифрованы), но рекомендуется хранить его за пределами корневого веб-сайта (в вашем домашнем каталоге), чтобы к нему невозможно было получить доступ из Интернета.
Ввод имен пользователей и паролей
После того, как вы создали свой.htpasswd (вы можете сделать это в стандартном текстовом редакторе) вы должны ввести логины и пароли для доступа к сайту. Их следует вводить следующим образом:
логин: пароль
Где пароль — это зашифрованный формат пароля. На сайте KxS есть хорошая служба имени пользователя и пароля, которая позволит вам ввести имя пользователя и пароль и выведет их в правильном формате.
Для нескольких пользователей просто добавьте дополнительные строки в файл .htpasswd в том же формате, что и первый.
Доступ к сайту
Когда вы пытаетесь получить доступ к сайту, который был защищен с помощью .htaccess, в вашем браузере появится стандартное диалоговое окно имени пользователя и пароля. В качестве альтернативы вы можете отправить имя пользователя и пароль (в незашифрованном виде) в URL-адресе следующим образом:
http: // имя пользователя: пароль @ www.website.com/directory/
Рекомендуемое содержимое справки
Объясняет, как редактировать .htaccess
Статья базы знаний 269188 просмотров Теги: htaccessУниверсальный и надежный WordPress является фаворитом среди приложений и систем управления контентом.В этой статье представлены девять советов по работе в WordPress.
Как выполнить перенаправление / перезапись URL с помощью файла .htaccess?
Соответствующее содержимое справки
Как принудительно использовать https на всем веб-сайте.
Краткое руководство по установке разрешений для файлов и пользователей в cPanel.
Как запускать сценарии CGI для дополнительных доменов.
В этой статье объясняется, как найти базу данных, используемую сайтом WordPress.
Файл hosts — это простой текстовый файл, который позволяет вам устанавливать IP-адреса для домена на вашем компьютере.Это может перекрыть авторитетный DNS.
Как заставить подкаталог (или подпапку) действовать как public_html для вашего основного домена?
Предотвращение кражи полосы пропускания с помощью механизма перезаписи мод и.htaccess
В этой статье объясняется, как добавить обработчик PHP к вашим файлам .htaccess. Это полезно, если вы хотите настроить версию PHP, которая запускает ваши файлы PHP.
Ваш Complete.Руководство по htaccess: включая основы .htaccess и многое другое
.htaccess руководство по типам MIME
Типы MIME— это типы файлов, изначально предназначенные для электронной почты («Многоцелевые расширения электронной почты в Интернете»). Но не думайте о них просто как о «типах файлов», потому что MIME предлагает определенный формат для их определения. Если вы когда-либо писали документ HTML, вы, скорее всего, указали тип MIME. Наверное, даже не осознавая этого:
Атрибут типа относится к определенному типу MIME.
типов MIME на вашем сервере
Иногда вы можете обнаружить, что ваш веб-сервер не настроен для доставки файлов определенного типа. И любые запросы для этого типа файлов просто не работают. Обычно это можно обойти, поместив тип MIME в файл .htaccess.
AddType text / richtext rtx
Эта директива состоит из трех частей, разделенных пробелами:
- Команда AddType
- Тип MIME
- Расширение файла.
Вы можете связать несколько разных расширений файлов с одним и тем же типом MIME в одной строке.
AddType video / mpeg mpg MPEG MPG
Принудительная загрузка по типу MIME
Хотите, чтобы каждая ссылка на файл определенного типа загружалась автоматически, а не просто открывалась в вашем браузере? Затем используйте MIME-тип application / octet-stream, например:
Приложение AddType / поток октетов pdf
Как и раньше, вы можете включать множество расширений файлов:
Приложение AddType / поток октетов rtf txt pdf docx doc
Список расширений файлов и типов MIME -.Основы htaccess
Вот неполный список форматов файлов и связанных типов MIME. Если вы управляете собственным веб-сайтом, возможно, вы уже знаете свои типы файлов. Таким образом, вам не нужно вставлять весь список в файл .htaccess. Но если вы управляете сайтом с другими людьми, которые могут загружать всевозможные материалы, тогда да. Это может помочь избежать возможных неудач с публикацией. Это особенно относится к сайтам для обмена файлами или управления проектами, где люди обязаны делиться большим количеством файлов.
Приложение AddType / macbinhex-40 hqx
Приложение AddType / сеть netalive
Приложение AddType / netalivelink nel
Приложение AddType / bin-поток октетов exe
Приложение AddType / oda oda
Приложение AddType / pdf pdf
Приложение AddType / постскриптум ai eps ps
Приложение AddType / RTF RTF
Приложение AddType / x-bcpio bcpio
Приложение AddType / x-cpio cpio
Приложение AddType / x-csh csh
Приложение AddType / x-Director dcr
Приложение AddType / директория x-Director
Приложение AddType / x-Director dxr
Приложение AddType / x-dvi dvi
Приложение AddType / x-gtar gtar
Приложение AddType / x-hdf hdf
Приложение AddType / x-httpd-cgi cgi
Приложение AddType / x-latex latex
Приложение AddType / x-mif mif
Приложение AddType / x-netcdf nc cdf
Приложение AddType / x-onlive sds
Приложение AddType / x-sh sh
Приложение AddType / x-shar Shar
Приложение AddType / x-sv4cpio sv4cpio
Приложение AddType / x-sv4crc sv4crc
Приложение AddType / x-tar tar
Приложение AddType / x-tcl tcl
Приложение AddType / x-tex tex
Приложение AddType / x-texinfo texinfo texi
Приложение AddType / x-troff t tr roff
Приложение AddType / x-troff-man man
Приложение AddType / x-troff-me me
Приложение AddType / x-troff-ms ms
Приложение AddType / x-ustar ustar
Приложение AddType / x-wais-source src
Приложение AddType / zip zip
AddType audio / basic au snd
AddType audio / x-aiff aif aiff aifc
AddType audio / x-midi mid
AddType audio / x-pn-realaudio ram
AddType audio / x-wav wav
AddType image / gif gif GIF
Изображение / идентификатор AddType
AddType image / jpeg jpeg jpg jpe JPG
Изображение AddType / tiff tiff tif
AddType image / x-cmu-raster ras
AddType image / x-portable-anymap pnm
AddType image / x-portable-bitmap pbm
AddType image / x-portable-graymap pgm
AddType image / x-portable-pixmap стр. / Мин
Изображение AddType / x-rgb rgb
Изображение AddType / x-xbitmap xbm
Добавить изображение / x-xpixmap xpm
Изображение AddType / x-xwindowdump xwd
Текст AddType / html html htm
AddType текст / обычный текст
AddType text / richtext rtx
AddType текст / значения, разделенные табуляцией tsv
AddType text / x-server-parsed-html shtml sht
AddType text / x-setext etx
AddType видео / MPEG MPEG MPG MPE
AddType video / quicktime qt mov
AddType video / x-msvideo avi
AddType video / x-sgi-movie
AddType x-world / x-vrml wrl
Apache:.htaccess файлы
Файлы .htaccess
позволяют выполнять настройку
изменяется для каждого каталога.
См. Также
Вам следует избегать использования файлов .htaccess
полностью, если у вас есть доступ к
Конфигурационный файл главного сервера httpd. Использование файлов .htaccess
замедляет работу вашего HTTP-сервера Apache.
Любую директиву, которую вы можете включить в файл .htaccess
, лучше установить в блоке Directory
, так как она будет иметь тот же эффект с лучшей производительностью. .htaccess
файлов (или «файлы распределенной конфигурации»)
предоставляют возможность вносить изменения в конфигурацию для отдельных каталогов. А
файл, содержащий одну или несколько директив конфигурации, помещается в
конкретный каталог документов, и директивы применяются к этому
каталог и все его подкаталоги.
Примечание:
Если вы хотите назвать свой .htaccess файл
, то
в противном случае вы можете изменить имя файла с помощью директивы AccessFileName
.Например,
если вы предпочитаете называть файл .config
, тогда вы
можете поместить в файл конфигурации вашего сервера следующее:
AccessFileName ".config"
Как правило, файлы .htaccess
используют тот же синтаксис, что и
основная конфигурация
файлы. То, что вы можете поместить в эти файлы, определяется
AllowOverride
директива. Этот
директива определяет в категориях, какие директивы будут
почетно, если они найдены в .htaccess
файл. Если
директива разрешена в файле .htaccess
,
документация для этой директивы будет содержать раздел Override,
указание, какое значение должно быть в AllowOverride
для этого
директива должна быть разрешена.
Например, если вы посмотрите документацию для AddDefaultCharset
директиве, вы обнаружите, что это разрешено в .htaccess
файлы. (См. Строку Context в сводке директивы.) Строка Override гласит
FileInfo
. Таким образом, у вас должно быть не менее
AllowOverride FileInfo
, чтобы эта директива была
соблюдается в файлах .htaccess
.
Если вы не уверены, разрешена ли конкретная директива в
.htaccess
файл, посмотрите документацию для этого
и проверьте строку контекста на наличие ".htaccess".
Как правило, вы должны использовать только файлы .htaccess
, когда
у вас нет доступа к основному файлу конфигурации сервера.Там есть,
например, распространенное заблуждение, что аутентификация пользователя должна
всегда выполняется в файлах .htaccess
, а в последние годы
еще одно заблуждение, что директивы mod_rewrite
должен находиться в файлах .htaccess
. Это просто не
дело. Вы можете поместить конфигурации аутентификации пользователей на главный сервер
конфигурации, и это, по сути, предпочтительный способ сделать
вещи. Точно так же директивы mod_rewrite
работают лучше,
во многом в основной конфигурации сервера.
Файлы .htaccess
следует использовать в случае, если
контент-провайдерам необходимо внести изменения в конфигурацию сервера на
для каждого каталога, но не имеют корневого доступа в серверной системе.
В случае, если администратор сервера не желает делать
частые изменения конфигурации, может быть желательно разрешить
отдельные пользователи должны вносить эти изменения в файлы .htaccess
для них самих. Это особенно верно, например, в случаях, когда
Интернет-провайдеры размещают несколько сайтов пользователей на одной машине и хотят
их пользователи, чтобы иметь возможность изменять свою конфигурацию.
Однако, как правило, следует использовать файлы .htaccess
.
по возможности избегать. Любая конфигурация, которую вы бы рассмотрели
помещая файл .htaccess
, можно так же эффективно
сделано в разделе
на вашем основном сервере
конфигурационный файл.
Есть две основные причины избегать использования
.htaccess
файлов.
Первое из них - производительность. Когда AllowOverride
настроен на использование .htaccess
файлов, httpd будет
поищите в каждом каталоге файлов .htaccess
. Таким образом,
разрешение файлов .htaccess
приводит к снижению производительности,
независимо от того, используете ли вы их на самом деле! Так же
.htaccess
файл загружается каждый раз, когда документ
просил.
Также обратите внимание, что httpd должен искать файлы .htaccess
во всех каталогах более высокого уровня, чтобы иметь полный набор
директивы, которые он должен применять.(См. Раздел о том, как
директивы.) Таким образом, если файл запрашивается из
каталог / www / htdocs / example
, httpd должен искать
следующие файлы:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Итак, на каждый доступ к файлу из этого каталога приходится 4
дополнительные обращения к файловой системе, даже если ни один из этих файлов не
настоящее время. (Обратите внимание, что это будет только в том случае, если
.htaccess
файлы были включены для /
, которые
обычно бывает не так.)
В случае директив RewriteRule
, в
.htaccess
context эти регулярные выражения должны быть
перекомпилируется при каждом запросе к каталогу, тогда как в основном
контекст конфигурации сервера они компилируются один раз и кэшируются.
Кроме того, сами правила сложнее, так как нужно
обойти ограничения, связанные с контекстом для каждого каталога
и mod_rewrite
.Обратитесь к Руководству по перезаписи для получения дополнительной информации.
подробно по этому поводу.
Второе соображение касается безопасности. Вы разрешаете
пользователи могут изменять конфигурацию сервера, что может привести к изменениям
который у вас нет контроля. Тщательно подумайте, хотите ли вы подарить
вашим пользователям эта привилегия. Также обратите внимание, что давая пользователям меньше
привилегии, чем они нужны, приведут к дополнительной технической поддержке
Запросы. Убедитесь, что вы четко указываете пользователям, какой уровень
привилегии, которые вы им дали.Точно указать, что вы установили
AllowOverride
и указывая на них
к соответствующей документации, избавите себя от многих затруднений
позже.
Обратите внимание, что это полностью эквивалентно помещению .htaccess
файл в каталоге / www / htdocs / example
, содержащий
директиву, и поместить эту же директиву в раздел каталога
на вашем основном сервере
конфигурация:
.htaccess
в / www / htdocs / example
:
Содержимое файла .htaccess в
/ www / htdocs / example
AddType text / example ".exm"
Раздел из вашего
httpd.conf
файл <Каталог "/ www / htdocs / example"> AddType текст / пример ".exm"
Однако, поместив эту конфигурацию в конфигурацию вашего сервера файл приведет к меньшему снижению производительности, поскольку конфигурация загружается один раз при запуске httpd, а не каждый раз, когда файл просил.
Использование файлов .htaccess
можно полностью отключить
установив AllowOverride
директива к нет
:
AllowOverride Нет
Директивы конфигурации, найденные в файле .htaccess
применяются к каталогу, в котором находится файл .htaccess
найден, и во все его подкаталоги. Однако важно
также помнить, что могло быть .htaccess
файлов
в каталогах выше. Директивы применяются в том порядке, в котором они
найдены. Следовательно, файл .htaccess
в конкретном
каталог может переопределять директивы, найденные в файлах .htaccess
находится выше в дереве каталогов. А те, в свою очередь, могут
переопределенные директивы, найденные еще выше или на главном сервере
сам файл конфигурации.
Пример:
В каталоге / www / htdocs / example1
у нас есть
.htaccess
, содержащий следующее:
Опции + ExecCGI
(Примечание: у вас должны быть действующие " AllowOverride Options
"
чтобы разрешить использование директивы « Options
» в
.htaccess
файлов.)
В каталоге / www / htdocs / example1 / example2
есть
файл .htaccess
, содержащий:
Опции Включает
Из-за этого второго файла .htaccess
в каталоге
/ www / htdocs / example1 / example2
, выполнение CGI не
разрешено, поскольку действует только опционов, включая
, что
полностью отменяет любые предыдущие настройки, которые могли быть
место.
Слияние .htaccess с основным файлы конфигурации
Как указано в документации по разделам конфигурации,
.htaccess Файлы
могут замещать разделы
для
соответствующий каталог, но будет заменен другими типами
разделов конфигурации из основных файлов конфигурации. Этот
факт может использоваться для принудительного применения определенных конфигураций, даже в
наличие либерального AllowOverride
настройки.Например, чтобы
предотвращать выполнение скрипта, позволяя установить что-либо еще в
.htaccess
вы можете использовать:
<Каталог "/ www / htdocs"> AllowOverride All <Местоположение "/"> Параметры + Включает NoExec -ExecCGI
Если вы перешли непосредственно к этой части документа, чтобы узнать, как
Чтобы выполнить аутентификацию, важно отметить одну вещь. Eсть
распространенное заблуждение, что вы обязаны использовать
.htaccess
файлов для реализации пароля
аутентификация. Это не тот случай. Ввод директив аутентификации
в
раздел в вашем основном файле конфигурации сервера является предпочтительным способом
для реализации этого следует использовать только файлы .htaccess
если у вас нет доступа к основному файлу конфигурации сервера. См. Выше обсуждение того, когда вы должны и должны
не используйте файлы .htaccess
.
Сказав это, если вы все еще думаете, что вам нужно использовать
.htaccess
, вы можете обнаружить, что такая конфигурация, как
то, что следует ниже, может сработать для вас.
.htaccess
содержимое файла:
AuthType Basic AuthName «Требуется пароль» AuthUserFile "/www/passwords/password.file" AuthGroupFile "/www/passwords/group.file" Требовать администраторов группы
Обратите внимание, что должен действовать AllowOverride AuthConfig
.
чтобы эти директивы имели какой-либо эффект.
См. Руководство по аутентификации для более полное обсуждение аутентификации и авторизации.
Еще одно распространенное использование файлов .htaccess
- включение
Включения на стороне сервера для определенного каталога. Это можно сделать с помощью
следующие директивы конфигурации, помещенные в
.htaccess
файл в желаемом каталоге:
Опции + Включает AddType text / html shtml Обработанный сервером shtmlAddHandler
Обратите внимание, что Параметры AllowOverride
и AllowOverride
FileInfo
должны действовать, чтобы эти директивы имели какие-либо
эффект.(. +) \. jpg "" $ 1.png "
В файле .htaccess
в каталоге документов ведущая
косая черта удаляется из значения, предоставленного в RewriteRule
, а в
images подкаталог
, / images /
удален из
Это. Таким образом, ваше регулярное выражение должно опускать эту часть как
хорошо.
Обратитесь к документации mod_rewrite для
дополнительные сведения об использовании mod_rewrite
.
Наконец, вы можете захотеть использовать .htaccess
, чтобы разрешить
выполнение программ CGI в определенном каталоге. Это может быть
реализован в следующей конфигурации:
Опции + ExecCGI AddHandler cgi-скрипт cgi pl
В качестве альтернативы, если вы хотите, чтобы все файлы в данном каталоге были считаются программами CGI, это можно сделать с помощью следующих конфигурация:
Опции + ExecCGI SetHandler cgi-скрипт
Обратите внимание, что Параметры AllowOverride
и AllowOverride
FileInfo
должны действовать, чтобы эти директивы имели какие-либо
эффект.
Пожалуйста, см. Учебник CGI для получения дополнительной информации. полное обсуждение программирования и настройки CGI.
Когда вы помещаете директивы конфигурации в .htaccess
файла, и вы не получите желаемого эффекта, существует ряд
вещи, которые могут пойти не так.
Чаще всего проблема в том, что AllowOverride
не
установите так, чтобы ваши директивы конфигурации соблюдались. Делать
убедитесь, что у вас нет действующего AllowOverride None
для рассматриваемой области файла.Хорошая проверка для этого - положить мусор
в вашем файле .htaccess
и перезагрузите страницу. Если ошибка сервера
не сгенерирован, то у вас почти наверняка есть AllowOverride
Нет
в силе.
Если, с другой стороны, вы получаете ошибки сервера при попытке
получить доступ к документам, проверить журнал ошибок httpd. Скорее всего, это скажет вам
что директива, используемая в вашем файле .htaccess
, не
разрешенный.
[Пт 17 сен, 18:43:16 2010] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex здесь не разрешен
Это будет означать, что вы использовали директиву, которая
никогда не разрешается в файлах .htaccess
, или что вы просто
нет AllowOverride
, установленного на
уровень, достаточный для директивы, которую вы использовали. Проконсультируйтесь с
документацию для этой конкретной директивы, чтобы определить, какая из них
дело.
В качестве альтернативы он может сообщить вам, что у вас есть синтаксическая ошибка в вашем использование самой директивы.
[Сб, 09 августа, 16:22:34 2008] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: RewriteCond: неверные разделители флагов
В этом случае сообщение об ошибке должно относиться к конкретная синтаксическая ошибка, которую вы допустили.
Файлы по умолчанию .htaccess и php.ini
HostGator стремится упростить перенос вашего сайта на новую учетную запись хостинга. Мы можем передать файлы веб-сайтов, базы данных, скрипты и один бесплатный перенос регистрации домена.
Что дает мне право на бесплатный перевод?
HostGator предоставляет бесплатные переводы для новых учетных записей в течение 30 дней после регистрации , а также для новых обновленных учетных записей. Для обновленных учетных записей это должно быть межсерверное обновление, чтобы соответствовать требованиям. Обратите внимание, что аккаунты с пониженной версией не имеют права на бесплатные переводы.
В зависимости от типа учетной записи, которую вы регистрируете, мы предлагаем разное количество бесплатных переводов. Пожалуйста, обратитесь к таблице ниже, чтобы увидеть, что мы включаем в новые пакеты.
Full cPanel Transfers - это количество включенных передач cPanel в cPanel.
Макс. Ручные переводы - это максимальное количество ручных переводов, включенных в вашу учетную запись.
Всего бесплатных переводов - это общее количество веб-сайтов, которые мы переместим для вас.
Тип счета | Всего бесплатных переводов | Полный перевод cPanel | Макс. Ручные переводы | ||||
---|---|---|---|---|---|---|---|
? Общий | 1 | 1 2 | 1 | ||||
? Торговый посредник | 30 | 30 2 | 915PS с ограниченным доступом? 1 | Безлимитный 2 | 10 на уровень VPS | ||
? Выделенный (базовый) | Безлимитный 1 | Безлимитный 2 | 75 | ? ) | Безлимит 1 | Безлимит 2 | 100 |
1 Хотя мы можем делать неограниченные переводы cPanel на cPanel, в зависимости от вашей учетной записи, у вас будет ограниченное количество ручных переводов .
2 Полная передача cPanel включает все домены, дополнительные домены, поддомены и настройки cPanel.