L htaccess: .htaccess — What is L in [QSA, L] in htaccess

Содержание

Как написать .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.
$ 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 и более детально описать ее синтаксис и логику.

 Директивы Allow, Deny, Order модуля mod_access_compat нежелательны к использованию и считаются устаревшими, хотя и поддерживаются еще в версиях Apache 2.3 и 2.4. В следующих версиях они будут удалены. Вместо них, начиная с версии Apache 2.3, этот функционал реализуется директивой Require, которая позволяет более гибко настраивать доступы, чем устаревшие директивы. Детали смотрите в статье «Контроль доступа клиента в Apache», которая подробно описывает директивы Require, Allow, Deny, Order с примерами их использования.

Директива 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 для популярных CMS — WordPress, Битрикс, Joomla

В данной статье приведены стандартные файлы .htaccess для наиболее популярных CMS. Файл .htaccess находится в корневой папке сайта.

Файл .htaccess для Joomla

##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters.  All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##
#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################
##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
#
#  mod_rewrite in use
RewriteEngine On
########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\. .]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

Файл .htaccess для WordPress

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

В REG.RU вы можете заказать WordPress hosting.

Файл .htaccess для HostCMS

Options +FollowSymlinks
AddDefaultCharset Off
<IfModule mod_php4.c>
 php_flag magic_quotes_gpc off
 php_flag magic_quotes_runtime off
 php_flag register_globals off
</IfModule>
<IfModule mod_php5.c>
 php_flag magic_quotes_gpc off
 php_flag magic_quotes_runtime off
 php_flag register_globals off
</IfModule>
<IfModule mod_dir.c>
 DirectoryIndex index.php index.htm index.html
</IfModule>
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(. (.*)$ index.php?q=$1 [L,QSA]
#
# Make sure .htc files are served with the proper MIME type, which is critical # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.
#AddType text/x-component .htc
#
# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP's register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# To verify that this option has been set to OFF, open the Manager and choose
# Reports -> System Info and then click the phpinfo() link. Do a Find on Page
# for "register_globals". The Local Value should be OFF. If the Master Value
# is OFF then you do not need this directive here.
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php. ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.
#
#php_flag register_globals Off
#
# For servers that support output compression, you should pick up a bit of
# speed by un-commenting the following lines.
#
#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5
#
# The following directives stop screen flicker in IE on CSS rollovers. If
# needed, un-comment the following rules. When they're in place, you may have
# to do a force-refresh in order to see changes in your designs.
#
#ExpiresActive On
#ExpiresByType image/gif A2592000
#ExpiresByType image/jpeg A2592000
#ExpiresByType image/png A2592000
#BrowserMatch "MSIE" brokenvary=1
#BrowserMatch "Mozilla/4. (\..*|Entries.*|Repository|Root|Tag|Template)$">
  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 magic_quotes_sybase              off
  php_flag register_globals                 off
  php_flag session. auto_start               off
  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
  </FilesMatch>
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  # Block access to "hidden" directories whose names begin with a period. (.*)$ /index.php
<Files "plugins.dat">
order allow,deny
deny from all
</Files>

Файл .htaccess для PrestaShop

Файл .hraccess генерируется автоматически самой CMS:

# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

Файл .htaccess для Moodle

DirectoryIndex index.php index.html index.htm
php_value memory_limit 40M (adjust to your version of Moodle)
php_flag magic_quotes_gpc 1
php_flag magic_quotes_runtime 0
php_flag file_uploads 1
php_flag session.auto_start 0
php_flag session.bug_compat_warn 0

Если у вас установлен Apache версии 2, добавьте следующие строки:

<IfDefine APACHE2>
    AcceptPathInfo on
</IfDefine>

Если у вас иная версия Apache, вставьте строку:

AcceptPathInfo on

Если конфигурационный файл отсутствует, ознакомьтесь со статьей: Проблемы с . (.*)\/$ /$1 [R=301,L]

Редирект на новую страницу
Настройте перенаправление со старой страницы /old_index.php на новую /new_index.php

Redirect 301 /index.php http://yoursite.ru/index.php

Более сложные примеры правил редиректов при помощи .htaccess

RedirectMatch [status] URL-regexp URL-to-redirect

[status] — код перенаправления (30x), 
URL-regexp — информация о перенаправляемом ресурсе, в том числе, с использованием регулярных выражений
URL-to-redirect — адрес перенаправления

Пример 1. Переадресация всего сайта с сохранением строки запроса

Redirect / http://yandex.ru/yandsearch?text= 

Выполнится 302 редирект (по умолчанию) на поиск в Яндексе символов, введенных в адресную строку после названия Вашего сайта.
То есть если посетитель введет http://site.ru/page, то браузер его перенаправит на http://yandex. ru/yandsearch?text=page

Пример 2. Переадресация конкретной страницы

Redirect 301 /hello.html http://google.ru/search?q=bye

 В случае перехода на страницу http://site.ru/hello.html выполнится 301 редирект на поиск в Гугле фразы «bye».

Пример 3. Переадресация конкретных файлов.
Примечание: данный редирект может не работать на серверах с nginx, если используются расширения статических файлов. 

RedirectMatch (.*)\.jpg$ http://хостинг_для_картинок$1.jpg 

«Временно» (по умолчанию действует 302 редирект) переадресовываем все запросы jpeg-картинок на какой-либо бесплатный хостинг
Аналогичный код, но при помощи RewriteRule

RewriteEngine on
RewriteRule (.*)\.jpg$ http://хостинг_для_картинок$1.jpg [L,R]


Пример 4. Передресация URL, в которых содержится QUERY STRING
Если у Вас имеется страница https://site.ru/page.php?page=hello&id=5 и нужно сделать её редирект, то при помощи . page\.php$ https://site.ru/redirect_to? [R=301,L]

 

В первой строке мы указываем, что правило будет распространятся только на запрос файла page.php
Во второй строке указываем строку запроса (query string), при наличии которой выполнится правило RewriteRule.
Когда 2 указанных RewriteCond совпадут, сработает RewriteRule, в котором указан редирект страницы page.php на URL https://site.ru/redirect_to? с кодом 301
Знак «?» в конце URL указан для того, чтобы строка запроса не передавалась на URL редиректа. Если передача необходима, то следует удалить знак «?» из URL.

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

Директивы файла .htaccess — help.zone.eu

Разрешение на отображение содержимого каталога
Options +Indexes

Запрет доступа к сайту с IP-адреса(-сов)

deny from 12. 34.45.78 1.2.3.4

Запрет веб-доступа, кроме IP

order deny,allow
deny from all
allow from 12.34.56.78

Запрет веб-доступа конкретному USER_AGENT (боту)

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} BadBot
RewriteRule .* - [F]

Запрет веб-доступа нескольким USER_AGENT

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} BadBot [OR]
RewriteCond %{HTTP_USER_AGENT} BadScanner [OR]
RewriteCond %{HTTP_USER_AGENT} Fraud
RewriteRule .* - [F]

Запрет доступа к конкретному файл

<Files "denied.php">
    Order Allow,Deny
    Deny from all
</Files>

Простое перенаправление

# Переадресация главного домена
Redirect 301 / https://www.example.ee/

# Перенаправление просроченной ссылки
Redirect 301 /expired-page https://www.example.ee/new-page

Перенаправление страницы на новый домен

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(?:www\. (.*)$ https://%1%{REQUEST_URI} [NC,R=301,L]

Разрешение определенных ресурсов (font, svg, css и т.п файлов) с другого домена, отличного от сервера. (Cross-Origin Resource Sharing (CORS))

<IfModule mod_headers.c>
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|svg|font.css|css|js)$">
        Header set Access-Control-Allow-Origin "https://www.example.ee"
    </FilesMatch>
</IfModule>

HSTS, Content Security Policy и прочие связанные с безопасностью заголовки

<IfModule mod_headers.c>
    Header set Strict-Transport-Security "max-age=31536000;includeSubDomains;preload" env=HTTPS
    
    Header set X-Frame-Options "DENY"
    Header set Content-Security-Policy "default-src https:; script-src https: 'unsafe-inline'; style-src https:'unsafe-inline'"
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options nosniff
</IfModule>

Разрешение доступа только с IP Эстонии

order deny,allow
deny from all
allow from env=DZSP_IS_ESTONIAN_IP

Разрешение доступа с IP адресов Европы

SetEnvIf MM_COUNTRY_CODE ^(AT|BE|BG|CZ|CY|DE|DK|EE|EL|ES|FI|FR|HR|HU|IE|IT|LT|LU|LV|MT|NL|PL|PT|RO|SE|SI|SK) EUROLIIT
order deny,allow
deny from all
allow from env=EUROLIIT

Запрет веб-доступа для конкретной страны, например Китай (CN)

SetEnvIf MM_COUNTRY_CODE ^(CN) ЗаблокированнаяСтрана
Deny from env=ЗаблокированнаяСтрана

Перенаправление пользователей конкретной страны (Финляндия) на новый домен

SetEnvIf MM_COUNTRY_CODE ^(FI) FINLAND
RewriteCond %{ENV:FINLAND} ^1$
RewriteRule . * http://www.example.fi%{REQUEST_URI} [R=301,L]

На серверах используется база данных GeoLite2, которая создана MaxMind и которую можно скачать по адресу https://www.maxmind.com.

Режим технического обслуживания – временное перенаправление всех запросов на страницу обслуживания

# При необходимости добавить до RewriteRule ссылки, которые должны иметь доступ 
# Добавить IP адрес своего интернет провайдера 
RewriteCond %{REQUEST_URI} !/hooldus.html [NC]
RewriteCond %{REQUEST_URI} !/hooldus\.css [NC]
RewriteCond %{REQUEST_URI} !/hooldus\.jpg [NC]
RewriteCond %{REMOTE_ADDR} !90\.100\.100\.100
RewriteRule .* https://example.ee/maintenancepage.html [L]

Запрет запуска PHP для предупреждения проблем безопасности

Options -ExecCGI
RemoveType .php .php3 .phtml .inc
RemoveHandler .php .php3 .phtml .inc

<FilesMatch "\.(?i:php|php3|phtml|inc)$">
    Require all denied
</FilesMatch>

<IfModule mod_php7. proxy/(.*)$" "http://www.example.com/$1" [P,L]

NB! Запросы прокси могут выполняться только для HTTP-соединений, и для каждого запроса отправляется уведомление в лог ошибок веб-сервера.

htaccess и поисковая оптимизация в «Битрикс»

 [email protected]

+7 495 008 8452

Анализ


Проект


Дизайн


Маркетинг


Разработка


Наполнение


Техподдержка


  • Веб-студия АКРИТ. разработка модулей и сайтов интернет магазинов на 1С Битрикс
  • Кладовка программиста
  • Полезные советы по настройке 1С-Битрикс
  • org/ListItem»>htaccess и поисковая оптимизация в «Битрикс»

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

Источник: 

Вам не приходилось сталкиваться с такой ситуацией? Через три – четыре месяца после сдачи сайта заказчик просит «навести порядок с SEO». И присылает длинный список пожеланий сеошников, где во первых строках письма стоит задание «редирект с www на без www». Пройдя стадию отрицания и гнева, благоразумный разработчик вычленяет повторяющиеся требования и включает их в чек-лист разработки сайта. Упростим ему задачу и приведем два типовых требования специалистов по поисковой оптимизации, а также инструкцию по их внедрению.

1. Переадресация с «без www» на «с www»

Первое требование определяет, что запросы адресов с не — основными хостами (lдопустим, http://вашсайт. (.*)$ %1/ [R=301,L] </IfModule>

И будет вам счастье. Удачи!

 

——————————-
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Подписаться на новые материалы раздела:

Загрузка…


Веб студия «АКРИТ»


  Узнать больше

Рассылка


Услуги


  • Внедрение, разработка, техподдержка
  • Настройки торговых площадок
  • Экспертиза производительности
  • Пакет услуг по переходу на новые версии модуля
  • Пакеты услуг
  • Продление решений
  • Сопровождение и поддержка сайтов

Популярные теги


Загрузка

Карта сайта

Веб-студия «АКРИТ»

Оригинальный файл .

/]+).html$ index.php?do=static&page=$1 [L]

или

Скачать .htaccess для DLE 9

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

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

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

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

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

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

Это отличный вопрос, и, возможно, нам следует начать с ответа « что такое файл .htaccess »?

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

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

Но зачем его использовать?

Самая большая причина — безопасность.

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

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

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

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

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

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

Вы можете выбрать реферал домена, чтобы запретить или заблокировать посетителей по IP-адресу.

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

Обратите внимание, что во втором IP-адресе отсутствует четвертое целое число. Этот блок кода будет нацелен на первый IP-адрес (255.0.0.0) и каждый IP-адрес в диапазоне 123.45.6.0-255, , затем разрешите весь остальной трафик.

Запретить листинг каталога

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

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

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

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

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

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

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

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

Для этого мы можем добавить следующее правило:

 AuthType Basic
AuthName "Эта область защищена паролем"
AuthUserFile /полный/путь/к/. htpasswd
Требовать действительного пользователя
 

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

Безопасность для WordPress

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

Вы найдете исходный код на сайте Ask Apache, где есть множество других фрагментов защиты WordPress.

 <Файлы wp-login.php>
Порядок Запретить, Разрешить
Запретить от всех
Удовлетворить любой
AuthName "Защищено AskApache"
AuthUserFile /web/askapache.com/.htpasswda1
Основной тип авторизации
Требовать действительного пользователя

 

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

Таким образом, даже приведенных выше примеров кодов будет более чем достаточно для дополнительной безопасности для вашего сайта WordPress.

Правила перезаписи URL-адресов HTTP/HTTPS

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

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

RewriteEngine и RewriteBase почти всегда можно установить на эти точные значения. Да$ Правило перезаписи (.*) https://d.com/$1 [R=301,L]

Если вы хотите копнуть немного глубже, вы можете найти длинный список флагов на этой веб-странице шпаргалки.

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

Когда вы только начинаете, я должен порекомендовать это веб-приложение mod_rewrite, которое поможет вам создавать образцы кода с использованием реальных URL-адресов.

Это великолепный инструмент, потому что вы можете искать различные элементы в синтаксисе, чтобы увидеть, что они на самом деле делают в правилах перезаписи.

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

Фрагменты кода для разработчиков

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

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

Представьте себе идеальную настройку Apache для новых веб-мастеров, которые только начинают работать в Интернете.

Параметр
DirectoryIndex

Вы можете указать Apache, какие документы следует изначально рассматривать как «основные» с помощью DirectoryIndex . Как правило, вы хотите настроить таргетинг на файлы с индексом с именами , такие как index.html и index.php .

 DirectoryIndex index.html index.php 

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

Принудительный субдомен с «www» или «без www»

Google может работать с обеими версиями домена вашего веб-сайта, если вы не укажете www.domain.com 9(.*)$ https://domain.com/$1 [L,R=301]

Этот фрагмент кода взят из архива CSS-Tricks и представляет собой очень удобное решение.

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

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

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

Сразу же я могу вспомнить документы PDF и аудиофайлы MP3, которые могут быть представлены в загружаемом формате, но вот как вы можете заставить их загрузить ?

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

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

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

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

Несколько примеров: 403/404 ошибки и 301 перенаправление .

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

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

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

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

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

WP Engine прекращает поддержку .htaccess

WordPress провайдер управляемого хостинга WP Engine объявил о прекращении поддержки директив .htaccess. WP Engine запустил процессы окончания срока службы (EOL) для прекращения использования .htaccess на своих серверах и установил дату полного прекращения поддержки в октябре 2022 года.

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

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

Почему WP Engine отказывается от поддержки .htaccess

Причины, по которым WP Engine отказывается от . htaccess, заключались в достижении прироста производительности за счет удаления .htaccess с уровня сайта, а также в возможности воспользоваться преимуществами прироста производительности за счет новых технологий.

В объявлении указано:

«WP Engine прекратит поддержку файла .htaccess, чтобы повысить производительность веб-сайта и соответствовать отраслевым тенденциям.

Если на вашем сайте используются пользовательские директивы .htaccess, выходящие за рамки правил WordPress по умолчанию, мы составили список рекомендуемых альтернатив».

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

«По нашему анализу, большинству веб-сайтов WP Engine не потребуется никаких дополнительных изменений в .htaccess, поскольку они используют версию этого файла WordPress по умолчанию.
Перезапись WordPress по умолчанию будет автоматически обрабатываться WP Engine на уровне сервера».

.htaccess и производительность сайта

.htaccess — это способ управления определенными аспектами веб-сайта, такими как перенаправление запроса одного URL-адреса на другой URL-адрес, перенаправление запросов небезопасных URL-адресов HTTP на безопасные HTTP-адреса и блокирование IP-адресов злонамеренные хакеры и скребки, среди многих других применений.

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

Использование файлов .htaccess является давней и устоявшейся практикой управления веб-сайтами.

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

Когда файлы .htaccess становятся очень большими, они могут оказать негативное влияние на SEO и показатели, связанные с конверсией, такие как время до первого байта (TTFB), показатель, который измеряет, сколько времени требуется серверу, чтобы начать загрузку ресурсов веб-страницы. .

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

Они обнаружили, что большой файл .htaccess оказывает измеримое и значительное влияние на использование ЦП. Тестирование также показало, что файл .htaccess, содержащий всего 1000 строк, может оказать «существенное» влияние на использование памяти сервера.

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

«Стоит отметить, что во время наших тестов мы не заметили какого-либо значительного влияния на общее время загрузки страницы, кроме файла из 50 000 строк. Вероятно, это связано с тем, что, несмотря на то, что при обработке запросов использовались значительные ресурсы, мы все еще не достигли максимальной производительности».

Тем не менее, можно себе представить, что сервер с несколькими веб-сайтами с большими файлами .htaccess может оказать влияние на сервер.

Во-вторых, что может стать неожиданностью для многих, так это то, что согласно официальному фонду Apache Software Foundation (разработчикам серверного программного обеспечения Apache, на котором работает .htaccess), файлы .htaccess следует использовать только при доступе к файл конфигурации сервера ограничен, например, на бюджетных общих серверах.

Документация Apache Software Foundation сообщает:

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

Это просто не так.

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

То, что предлагает WP Engine, на самом деле является передовой практикой в ​​соответствии с документацией Apache, и в краткосрочной и долгосрочной перспективе это принесет пользу их пользовательской базе, создав среду, которая может ускорить работу их веб-сайтов, что способствует продажам, рекламным кликам. и имеет небольшое преимущество SEO.

Будут ли неудобства для пользователей WP Engine?

WP Engine предлагает способы обойти использование файлов .htaccess с помощью того, что они называют веб-правилами. Веб-правила позволяют пользователям управлять правилами разрешения/запрета на основе IP и настраивать ответы заголовков.

Перенаправления могут применяться тремя способами на платформе управляемого хостинга WP Engine:

  1. Массовый импорт в конфигурацию Nginx WP Engine
  2. Массовый импорт в плагин WordPress под названием Redirection
  3. Массовый импорт в менеджер перенаправления Yoast SEO Plugin

Я использую плагин Redirection WordPress на некоторых своих веб-сайтах и ​​обнаружил, что это простой способ управления перенаправлениями и заголовками.

Плагин также имеет удобный файл журнала, который показывает вам посещения, которые привели к ответам 404, которые могут предупредить вас о входящих ссылках с ошибками (что можно исправить, создав перенаправление для URL-адреса с ошибкой на правильный URL-адрес).

WP Engine End-of-Life (EOL) Процесс для .htaccess

Хотя на первый взгляд может показаться радикальной идеей прекратить поддержку .htaccess, учитывая, что сама Apache Software Foundation рекомендует не использовать .htaccess на уровне веб-сайта, подход, который использует WP Engine, имеет большой смысл.

Преимущества очевидны как для их пользователей, так и для посетителей веб-сайта.

Будут ли другие хосты следовать их примеру?

Цитаты

Прочитать объявление WP Engine

Устаревание .htaccess и альтернативы

Прочтите рекомендации Apache Software Foundation по .htaccess

Когда (не) использовать файлы .htaccess

Веб-правила WP Engine

Перенаправления на WP Engine

Категория Новости WordPress

Простое руководство по .

htaccess

Эта запись YouMoz была отправлена ​​одним из членов нашего сообщества. Взгляды автора полностью принадлежат ему (за исключением маловероятного случая гипноза) и могут не отражать взгляды Моза.

Файл .htaccess на серверах с поддержкой mod_rewrite (обычно на основе Unix, но иногда и на приличных хостах с Windows) может быть мечтой (а иногда и кошмаром) SEO-специалистов. Небольшой файл, который должен быть найден в корневой папке, — это то, что вы будете использовать для исправления многих ошибок сканирования с перезаписью и перенаправлением. На небольших статических сайтах их можно даже использовать для создания более удобных и красивых URL-адресов.

Введение в .htaccess

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

Комментарии

Одна вещь, которой меня никогда не учили, когда я начинал создавать веб-сайты, — это комментировать. До недавнего времени мне никогда не приходило в голову, что комментирование полезно, но когда дело доходит до повторного использования и редактирования кода, это необходимо.

Редактирование строк в файле .htaccess такое же, как и в файле hosts: просто добавьте # в начало.

Образцы

Предотвращение канонизации — дабдабдаб или нет

Канонизация — это очень актуально, даже Мэтт Каттс недавно сообщил, что у многих веб-сайтов Google есть проблемы с канонизацией:

.

Наиболее распространенное использование файла . htaccess связано с канонизацией. Всего три строки кода помогут предотвратить возможные проблемы с индексацией и дублированием контента.

Три строки кода заставят «www.» для префикса вашего URL-адреса, независимо от того, какой URL-адрес был введен. Будь то http://yourdomain.com/ или http://yourdomain.com/dinosaur/, он автоматически изменится на http://www.yourdomain.com / и http://www.yourdomain.com/dinosaur/ соответственно.

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

Исправление ошибок сканирования

Как веб-мастеру, вы должны настроить инструменты Google для веб-мастеров, чтобы вы могли более внимательно изучить свой сайт, когда дело доходит до Google. Если у вас еще нет этой настройки… СДЕЛАЙТЕ ЭТО СЕЙЧАС!!! Если вы это сделаете, перейдите на панель инструментов и посмотрите в верхнюю правую часть, вы увидите таблицу под названием «Ошибки сканирования». Эта таблица содержит все проблемы, обнаруженные Google при сканировании вашего сайта (или не сканировании, если ошибок много).

Эти ошибки можно и нужно исправлять, как только вы их заметили. Единственные ошибки, которые действительно могут быть исправлены с помощью простого .htaccess, — это «Unreachable» и «Not Found», причем первые — это всего лишь одна или две нечетные страницы. «Unreachable» страницы — это те, которые обычно требуют дополнительного внимания за пределами файла .htaccess. .

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

Кто сказал, что 301 редиректы — это хлопоты?

Создание красивых URL-адресов

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

http://www.yourdomain.com/not_so_pretty.html —> http://www.yourdomain.com/sexy-url/

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

[L] не следует использовать в конце каждой строки, только в конце последнего RewriteRule, который вы делаете.

Заключение

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

Если я что-то упустил или ошибся, то я всего лишь человек. Пожалуйста, прокомментируйте ниже, и я исправлю и обновлю. Вы также можете найти меня в твиттере (@lukejonesme), если хотите поболтать!

Категория: .

htaccess | Скоропортящийся пресс

123…11 • Предыдущие сообщения »

Это экспериментальная техника, с которой я играю. Это самый простой способ защитить все файлы в медиатеке WordPress, используя только Apache/.htaccess. Я тестировал код на сайте с большим количеством изображений, и пока проблем не возникло. Поэтому я хочу выложить код для тестирования другими и, надеюсь, дать обратную связь, если что-то не идеально. Это очень простой метод, который предотвращает медиафайлы от […] Продолжить чтение »

Существует множество способов перенаправления запросов с помощью Apache mod_rewrite и mod_alias. В этом кратком и понятном руководстве объясняются различные способы перенаправления диапазона IP-адресов, IPv4 или IPv6. Продолжить чтение »

У Google есть еще одна новая вещь, которую они делают, под названием FLOC (федеративное обучение когорт). Он используется для — неожиданности — отслеживания активности пользователей на веб-сайтах. В идеале отключение осуществляется пользователем, который может настроить параметры своего браузера, чтобы отключить FLOC во время просмотра веб-страниц. Помимо настройки браузера на отказ от FLOC, вы можете отключить его на любом веб-сайте с помощью одной строки кода. Продолжить чтение »

Допустим, у вас есть некоторые правила перезаписи .htaccess с использованием Apache mod_rewrite. По умолчанию, если правила перезаписи расположены в корневом каталоге, они будут применяться ко всем подкаталогам, как и ожидалось. Но что, если вам нужно отключить правила перезаписи, чтобы они не затрагивали какой-то конкретный подкаталог или подпапку? Этот супер быстрый учебник показывает самый простой способ сделать это. Продолжить чтение »

После нескольких месяцев разработки официальная версия брандмауэра 7G для Nginx вышла из бета-версии и готова к публичному использованию. Если вы не знакомы с брандмауэром 7G, ознакомьтесь с документацией по версии Apache/.htaccess. Версия брандмауэра 7G для Nginx работает точно так же, поэтому я не буду здесь все повторять. Единственная разница заключается в реализации, как настроить его на сервере Nginx, что объясняется в этом посте. Продолжить чтение »

Вы когда-нибудь хотели сделать сайт WordPress приватным? Чтобы доступ был разрешен только определенным пользователям? Например, для моего сайта с найденными изображениями eChunks.com я решил требовать от пользователя входа в систему для доступа к любому контенту. Так что теперь для этого сайта публичный доступ запрещен, а любые посты, изображения и весь другой контент доступны только авторизованным пользователям. В этом руководстве объясняются четыре способа сделать сайт WordPress закрытым или доступным только для участников, чтобы только аутентифицированные/доверенные пользователи […] Продолжить чтение »

Рад сообщить, что брандмауэр 7G обновлен до версии 1.3 (3 сентября 2020 г.). Теперь доступно для загрузки, 100% бесплатно и с открытым исходным кодом, как всегда. Продолжить чтение »

Брандмауэр 7G был выпущен около года назад в виде бета-версии, и теперь у него было время, чтобы созреть/превратиться в стабильную версию. Так что это просто предупреждение о том, что 7G теперь официально вышел из бета-версии и готов к использованию в реальных / производственных средах. Продолжить чтение »

Примерно в конце декабря 2019 года, а затем и в январе 2020 года я наблюдаю массовый всплеск агрессивного вредоносного сканирования целей, связанных с загрузкой. В частности, существует огромное количество запросов на целевые URL-адреса, включая uploadify, plupload и тому подобное. Типичное сканирование выдает более 30 000–50 000 запросов за одну атаку. Просто неустанное сканирование эксплойтов на стероидах. Продолжить чтение »

В недавнем руководстве я объясняю, как запретить WordPress изменять .htaccess. В этом посте объясняется несколько способов запретить WordPress вносить изменения в .htaccess. Этот пост объясняет еще лучший способ, который является безопасным, эффективным, неинвазивным, многоразовым и очень простым. Я использую его на своих сайтах уже несколько лет, и он работает безупречно. Продолжить чтение »

Мне часто задают вопрос, как изменить или скрыть расширения файлов с помощью .htaccess. По-видимому, поисковые системы предпочитают «красивые» структуры URL-адресов постоянных ссылок строкам запросов и расширениям файлов. Это одна из причин, по которой WordPress предоставляет оптимизированную для SEO опцию постоянной ссылки для URL-адресов; потому что он предпочтительнее стандартного формата, основанного на простой строке запроса. На экране настроек постоянных ссылок в административной области WordPress: Продолжить чтение »

Этот краткий пост предназначен для пользователей брандмауэра 6G. Последнее обновление 6G удаляет раздел блокировки IP-адресов, чтобы улучшить совместимость и реализацию брандмауэра. Итак, теперь, когда раздел IP удален, вы можете спросить: «Как заблокировать IP-адрес с 6G?» Что ж, хорошие новости, этот урок объясняет, как это сделать. Продолжить чтение »

Наконец-то собрал гигантский список примеров перенаправления .htaccess. Он предназначен для быстрого копирования и вставки для тех, кто ищет различные методы перенаправления. Здесь вы найдете редиректы через mod_alias и mod_rewrite. Примеры включают перенаправление в и из любого каталога, подкаталога, ресурса, URL-адреса и многое другое. Большинство этих примеров взяты из моей предыдущей статьи Stupid htaccess Tricks; другие примеры взяты из предыдущих руководств по .htaccess здесь, в Perishable Press. Наслаждаться! 🙂 Продолжить чтение »

Судя по всему, в прошлом году Bluehost сотрудничал с компанией SiteLock. Предположительно Sitelock — это «сканер веб-сайтов, который активно проверяет наличие вредоносных угроз и уязвимостей». Я предполагаю, что служба работает на серверах Bluehost, и сегодня они прислали мне страшное электронное письмо, в котором сообщалось, что на моем сайте Bluehost было обнаружено «вредоносное ПО». Однако вот в чем дело. Я размещаю только один сайт на Bluehost, и это простой одностраничный сайт с несколькими простыми файлами. Поэтому я был удивлен […] Продолжить чтение »

В этом руководстве объясняется, как регистрировать запросы, заблокированные брандмауэром 7G. Это полезно для тестирования, отладки и просто наблюдения за вещами. Узнайте, как регистрировать запросы от Apache mod_rewrite, и загрузите мой собственный скрипт ведения журнала 7G. Это полный пример, показывающий, как регистрировать запросы на перезаписи через PHP. Все с открытым исходным кодом и бесплатно 🙂 Продолжить чтение »

Брандмауэр 7G уже здесь! 7G вышел из бета-версии и готов к работе. Таким образом, вы можете воспользоваться мощной защитой новейшего брандмауэра nG (он же nG Blacklist). Брандмауэр 7G предлагает легкую защиту на уровне сервера от широкого спектра вредоносных запросов, плохих ботов, автоматических атак, спама и многих других типов угроз и ерунды. Продолжить чтение »

123…11 • Предыдущие сообщения »

Добро пожаловать

Perishable Press управляется Джеффом Старром, профессиональным веб-разработчиком и автором книг с двадцатилетним опытом работы. Здесь вы найдете сообщения о веб-разработке, WordPress, безопасности и многом другом »

SAC Pro: неограниченное количество чатов.

Мысли

The Legend of Zelda: Tears of the Kingdom выйдет 12 мая 2023 года.

Любимая вещь на завтрак — высокий стакан холодной воды. Каждый раз попадает в точку.

Осень — мое любимое время года 🙂

Осталось несколько дней до того, как про-лицензии «Безлимитные» больше не будут доступны.

Возвращение к жизни после приятного мини-отпуска. Время набраться сил и заняться собой.

Наслаждайтесь моей 7-летней коллекцией бесплатных онлайн-инструментов для веб-разработки и дизайна.

Оружие, необходимое, чтобы править миром: погода, насморк, множество идиотов.

+ Еще мысли »

Информационный бюллетень

Получайте новости, обновления, предложения и советы по электронной почте.

Введите адрес электронной почты

Электронная почта скрыта. Легко отписаться в любое время.

Темы

  • WordPress
  • Безопасность
  • .htaccess
  • JavaScript
  • HTML
  • PHP
  • УСБ
  • SEO
  • подробнее »
  • веб-сайты
  • плагины
  • черный список
  • апач
  • учебники
  • код
  • или
  • mod_rewrite
  • оптимизация
  • дизайн
  • ссылки
  • спам
  • разметка
  • сервер
  • взлом
  • подробнее »

htaccess | Документация Grav

Быстрое меню
  • Как редактировать . htaccess в Windows и macOS
  • Тестирование .htaccess
  • Устранение неполадок с поврежденным .htaccess

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

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

Как редактировать .htaccess в Windows и macOS

Файл .htaccess является скрытым. Это означает, что по умолчанию пользователи macOS и Windows не смогут увидеть этот файл в файловом менеджере (Finder), если они не активируют скрытый файлы для просмотра.

В macOS :

  1. Открыть терминал .
  2. Введите значения по умолчанию , напишите com.apple.finder AppleShowAllFiles YES в терминал и нажмите , верните .
  3. Введите killall Finder в терминал и нажмите , вернитесь .

Теперь вы должны увидеть файл .htaccess в корневом каталоге разархивированной папки Grav. Вы можете вернуть свои настройки в исходное скрытое состояние, повторив процесс и введя НЕТ в конце шага 2 вместо ДА .

В Windows 10 :

  1. Открыть Проводник .
  2. Выберите вкладку View .
  3. Установите флажок рядом с скрытыми элементами .

Снятие этого флажка снова скроет эти скрытые файлы, вернув File Explorer в состояние по умолчанию.

Тестирование .htaccess

Допустим, вы открываете браузер и переходите на новый сайт Grav, а его там нет! Большое жирное сообщение о том, что Not Found — это то место, где должен быть ваш красивый сайт Grav. Это не забавная проблема, но решение может быть таким же простым, как настройка вашего .htaccess файл.

Первым шагом в устранении неполадок с файлом .htaccess должна быть проверка того, что файл действительно загружается и используется сервером. Убедитесь, что файл находится в корневом каталоге вашего сайта Grav, где он должен быть, и что он правильно назван .htaccess с начальной точкой ( . ).

Если файл есть, ваш следующий шаг — протестировать его и убедиться, что ваш сервер принимает его. Это простой процесс, который включает добавление одной строки вверху файла.

Для проверки откройте файл .htaccess в текстовом редакторе. Затем вы захотите создать новую первую строку и поместить текст Test. и сохраните.

Эта ошибка сама по себе не решает вашу проблему, но позволяет узнать, что .htaccess в корневом каталоге вашего сайта Grav — это тот, который анализирует ваш сервер.

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

Устранение неполадок с поврежденным файлом .htaccess

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

Вот что вы можете сделать:

Найдите и откройте файл httpd.conf или apache.conf в текстовом редакторе. В Windows это, вероятно, будет Блокнот или текстовый редактор, созданный для разработки. Текстовые процессоры могут добавлять ненужную информацию, которая может усугубить проблему.

Далее вам нужно найти область файла Directory . Должен быть блок текста вот такого вида:

#
    # AllowOverride определяет, какие директивы могут быть помещены в файлы .htaccess.
    # Это может быть "Все", "Нет" или любая комбинация ключевых слов:
    # Параметры FileInfo AuthConfig Limit
    #
    AllowOverride All 

Если для AllowOverride установлено значение None или любое другое значение, кроме All , вам необходимо изменить его на Все и сохранить. Это изменение потребует перезагрузки вашего сервера Apache для регистрации.

После того, как вы это сделаете, проверьте свой сайт еще раз.

Мы также включили руководства по устранению неполадок, которые помогут вам столкнуться с внутренней ошибкой сервера 404 или 500 при работе с Grav.

Нашли ошибки? Думаете, вы можете улучшить эту документацию? Просто щелкните ссылку Edit в верхней части страницы, а затем значок на Github, чтобы внести изменения.

Что я могу сделать с файлом .htaccess?

Пользователи платформы Cloudways могут легко управлять важным количеством настроек сервера через раздел «Настройки сервера» (в области «Управление сервером» ). Мы всегда добавляем туда новые настройки, и вы можете оставлять предложения на нашей странице отзывов, чтобы мы могли их изучить.

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

Подключитесь к вашему серверу через SSH

Лучший способ создать/отредактировать файл .htaccess для вашего приложения — через сеанс SSH. Откройте сеанс на своем сервере с учетными данными приложения, для которого вы хотите создать/отредактировать .htaccess. Здесь у вас есть базы знаний, связанные с SSH:

  • Как подключиться к вашему серверу с помощью SSH

  • Как запустить SSH-терминал с платформы Cloudways

. htaccess Советы по доступу и безопасности

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

1) Защитите приложение паролем

a) Найти путь к папке public_html вашего приложения, запустив pwd из оболочки.

 [wjdjmhbxbg]:public_html$ pwd 
/home/08518-6164.cloudwaysapps.com/wjdjmhbxbg/public_html
[wjdjmhbxbg]:public_html$

b) Добавьте в файл пути пользователя выше .htaccess следующий код ):

 AuthName "Добавьте сюда свое сообщение для входа." 
AuthType Basic
AuthUserFile /home/08518-6164.cloudwaysapps.com/wjdjmhbxbg/public_html/.htpasswd
require user name-of-user

c) Создайте файл паролей . htpasswd и добавьте пользователя, используя следующий код (сделайте убедитесь, что вы находитесь в папке public_html приложения, которое хотите защитить паролем):

 [wjdjmhbxbg]:public_html$ htpasswd -c .htpasswd имя-пользователя 
Новый пароль:
Повторно введите новый пароль:
Добавление пароля для пользователя имя-пользователя
[wjdjmhbxbg]:public_html$

С этого момента на, вам нужно будет указать пользователя и пароль, которые вы установили выше, чтобы получить доступ к вашему сайту. Отмените изменения, чтобы снова открыть доступ.

2) Блокировать доступ к определенным IP-адресам

Вы можете сделать это, например, если вы подверглись атаке с определенного IP-адреса, вам нужно будет добавить следующий код в файл .htaccess нужного приложения ( меняет IP-адреса на ваши целевые):

  
приказ разрешить, запретить
запретить с 46.228.47.114
запретить с 46.225.88.5
разрешить со всех

3) Блокировать все IP(ы) с немногими 9007 2Exceptions 9007 2 Вы можете сделать это снова во время разработки. Снова замените IP-адреса на желаемые:

  
order deny,allow
deny from all
# Just Allow a Single IP
allow from 84.89.61.164

4) Блокировать доступ к определенным ботам

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

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

 RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} s2bot [NC]
RewriteRule .* - [F,L] 9.*(Go!Zilla|GrabNet|s2bot).*$ [NC]
RewriteRule .* - [F,L]

.htaccess Советы по перезаписи/перенаправлению

Существуют различные типы перезаписи/перенаправления URL, которые мы можем достичь через файл .htaccess. Здесь мы опишем некоторые из основных. Просто добавьте указанный код в .htaccess вашего целевого приложения (обновите URL-адрес, чтобы он соответствовал вашему приложению):

1. 301 (постоянный) перенаправление

 перенаправление 301 / http://example.com/ 9/имя подкаталога/ 
RewriteRule (.*) /subdir/$1

.htaccess Настройки PHP и другие элементы

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

Важно

Для новых серверов (развернутых с 23 августа 2016 г.) используйте редактор настроек PHP для директив PHP.

1) Редактирование максимального размера сообщения

 php_value post_max_size 20M 9index.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [l]

5) Установка максимального времени ввода

 PHP_VALU Длина строки ошибки  

 php_value log_errors_max_len 0 

8) Измените набор символов по умолчанию для PHP (замените * значением charset)

 php_value default_charset * 

9) Stop PHP Scripts from Executing in a Directory:

 removehandler .

Добавить комментарий

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