Файл htaccess для чего нужен – Файл .htaccess подробное описание, где находится, настройка и оптимизация — Секреты разработки сайтов

Содержание

Как устроен и зачем нужен файл .htaccess?

Для чего служит .htaccess?

Набирая адрес в строке браузера, вы получаете на свой компьютер файлы, которые отображает браузер. Управление тем, какие файлы и как вам показывать (пересылать) осуществляет веб-сервер. Наиболее популярных серверов два: IIS и Apache.
Как и любая программа, веб-сервер имеет определенные настройки. Но, у вас, как пользователя Апача может (и скорее всего не будет, если говорить о виртуальном хостинге) прав менять конфигурацию Апача через его главные файлы, действие которых распространяется на всех пользователей этого сервера. Но, вы можете менять некоторые конфигурационные файлы, который распространяют свое действие только на ваш сайт. Один из таких файлов – .htaccess
Это файл гибкой настройки веб-сервера Апач. “Гибкий” обозначает, что как только вы поменяли что-то в этом файле, изменения тут же вступают в силу. С помощью него можно переопределить многие директивы из файла httpd.conf (этот файл является главным конфигурационным файлом сервера Апач и его действия распространяются полностью на всех пользователей данной копии Апача). В случаях, когда у вас нет доступа в файлу настройки Апача (тот же виртуальный хостинг), вам поможет именно этот файл.
Этот файл не доступен веб-пользователю из браузера. Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех папок, где находится другой файл .htaccess (и кроме всех папок “ниже” этой папки со вторым .htaccess).
Пример:
Структура ваших директорий на сервере такая:

|-user
| |
| -user1
| |
| -user2
|

|-data
| |
| -data1
| |
| -data2
|

Директории user1 и user2 будут вложенными по отношению к директории user. Если мы поместим в директорию www файл .htaccess, то его действие будет автоматически распространяться и на директории user1 и user2.
В директорию data помещаем другой файл .htaccess, по-сравнению, с тем, что находится в директории user. И для директорий data1 и data2 будет действовать файл .htacсess, находящийся в data.
Теперь, в директорию user2 мы помещаем еще один файл .htaccess, который отличен от того, что находится в директории 2мя уровнями выше (это директория user). В итоге, настройки для директории user2 будут определяться только тем файлом .htaccess, который находится в этой директории.
Так как чаще всего Апач настроен так, что всегда ищет этот файл в директории, то .htaccess поможет вам быстро и без останова сервера произвести его перенастройку.

Синтаксис .htaccess

Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера:
– пути к файлам (директориям) указываются от корня сервера. Пример: /opt/home/www.astanafoto.com/htdocs/config/.htpasswords
– домены с указанием протокола
Пример: Redirect / http://www.site.ru

Файл имеет название именно “точка” htaccess
Должен быть записан в UNIX-формате. Для оболочки FAR, достигается F4 (редактирование файла), Shift+F2 (выбрать “сохранить как UNIX-текст”).


Как запретить веб-посетителям читать файлы в директории?

Запрет на все файлы:
deny from all
Где all обозначает “все”.


Разрешить доступ с определенного ip:
order allow deny
deny from all
allow from <ваш ip>

В данном случае, <ваш ip> обозначает конкретный адрес.
Например:
order allow deny
deny from all
allow from 192.126.12.199


Запретить доступ с определенного ip:
order allow deny
deny from <ваш ip>

Использование <ваш ip> аналогично для примера выше.


Запрет на группу файлов по маске:
<Files “\.(inc|sql|…другие расширения…)$”>
order allow,deny
deny from all
</Files>

Определяет доступ к файлу по его расширению.
Например запрет на доступ к файлам с расширениям “inc” для веб-посетителей:
<Files “\.(inc)$”>
order allow,deny
deny from all
</Files>

В данном примере сам веб-сервер Апач может обращаться к файлам с таким расширениям.


Запрет на конкретный файл:
Можно поставить запрет на конкретный файл по его названию и расширению.
<Files config.inc.php>
order allow,deny
deny from all
</Files>

В данном примере стоит запрет на обращения к файлу config.inc.php.


Пароль на директорию:
AuthName “Private zone”
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
require valid-user
</Files>

Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.

Например в директории, которую защищаем паролем создаем такой .htaccess:
AuthName “For Registered Users Only”
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
</Files>

В этом примере, посетитель при запросе директории, будет читать фразу “For Registered Users Only”, файл с паролями для доступа должен лежать в директории /pub/site.ru/ и называться .htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.


Пароль только на 1 файл:
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:
<Files private.zip>
AuthName “Users zone”
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>


Пароль на группу файлов:
Аналогично, используя <Files “\.(inc|sql|…другие расширения…)$”>, можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением “sql”:
<Files “\.(sql)$”>
AuthName “Users zone”
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>


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

Задача: есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ только к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз – при доступе к a1, но при этом соблюдать права на доступ к а2 и а3.
Ник и пароль запрашиваются только при входе на а1 – если у юзвера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка “введите пароль”.

www.site.ru/a1
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 – общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей.


файл .htaccess для каталога а1:
AuthName “Input password”
AuthType Basic
AuthUserFile “/pub/home/login/htdocs/clousearea/.htpasswd”
<Files *.*>
require valid-user
</Files>

файл .htaccess для каталога а2:
AuthName “Input password”
AuthType Basic
AuthUserFile “/pub/home/login/htdocs/clousearea/.htpasswd”
<Files *.*>
require user юзвер1 юзвер2 юзвер3
</Files *.*>

файл .htaccess для каталога а3:
AuthName “Input password”
AuthType Basic
AuthUserFile “/pub/home/абв/htdocs/clousearea/.htpasswd”
<Files *.*>
require user юзвер1 юзвер4 юзвер5
</Files *.*>


Как сделать перенаправление (редирект) посетителя?



Редирект на другой url:
Что бы сделать перенаправления посетителя на сайт http://site.ru в .htaccess Redirect / http://www.site.ru


Редирект любой страницы сайта на индексный файл:
RewriteEngine on
RewriteRule !\index.html$ /index.html


Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR=”redir”
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html

Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR=”redir”
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html


Перенаправление посетителя при запросе определенных страниц:
Это уже для всех сетевых вирусов и сканеров. Теперь любой запрос с адресом /_vti_bin будет автоматически перенаправляться на Microsoft:

redirect /_vti_bin http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /c http://www.microsoft.com
redirect /d http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1


Как сделать стартовой другую страницу?

Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
DirectoryIndex <нужная страница>

Можно указывать несколько страниц.

DirectoryIndex index.shtml index.php index.php3 index.html index.htm


Как заставить Апач обрабатывать SSI директивы?

SSI позволяют “собирать” страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем – нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с <Directory/> и заканчивающийся </Directory> в строку Options Indexes добавьте Includes.

После, в файле .htaccess пишем:

AddHandler server-parsed .shtml .shtm .html .htm


Как заставить Апач выполнять в html документах php код?

Иногда бывает полезно “обмануть” посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов. Некоторые делаю мелкие фишки, вроде того, что дают фалам расширения совпадающие с какими-либо “знаковыми” именами. Например, на сайте www.osg.ru используются файлы с расширением osg: index.osg, script.osg и т.п.

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

При большой посещаемости сервера может вызвать тормоза. Спрашивайте у админа.

Для серверов на cloudlinux конструкция будет выглядеть так:

<FilesMatch “\.(inc|php|php3|php4|php5|php6|html)$”>
AddHandler x-httpd-php5 .inc .php .php3 .php4 .php5 .html
</FilesMatch>


Как самому обрабатывать ошибки Апача?

Наиболее интересные и полезные ошибки Апача это: 403-404, 500.
403 – пользователь не прошел аутентификацию, запрет на доступ (Forbided).
404 – запрашиваемый документ (файл, директория) не найден.
500 – внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла .htaccess).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в .htaccess пишем:

ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

При этом при возникновении 404 ошибки пользователю загрузится файл errors/403.html.

Удобно делать собственный обработчик на некоторые ошибки. В .htaccess пишем:
ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404
ErrorDocument 500 /errors/error.php?500

В error.php через $HTTP_SERVER_VARS[‘REQUEST_URI’] определяем какой документ вызвал ошибку и дальше обрабатываем. Если в .htaccess на ErrorDocument стоит указание файла с полным путем (http://site.ru/error.php), то $HTTP_SERVER_VARS[‘REQUEST_URI’] будет содержать этот файл, а не вызвавший ошибку.
В Internet Explorer 5.0 неправильно обрабатывается файл, вызывающийся при ошибке, если его размер меньше 1 килобайта. Будет вызвана стандартная страница IE 404.


Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

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

Options -Indexes


Можно ли указать кодировку на все файлы, в которой по умолчанию получает документы браузер?

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

AddDefaultCharset windows-1251


Можно ли указать кодировку на загружаемые файлы?

При загрузке посетителем файла на сервер, возможна перекодировка его – указываем, что все получаемые файлы будут иметь кодировку windows-1251:

CharsetSourceEnc windows-1251


Создал файл .htaccess, но сервер выдает 500 ошибку – Internal Erorr

Ошибка синтаксиса или файл записан не в том формате.
Смотрите вопрос #2.

Файл htaccess — полное руководство по настройке

В данной статье Вы узнаете о настройках файла htaccess: о редиректах и перезаписи, а также о конфигурировании веб-сервера и его защите.

Что такое .htaccess? (Hypertext Access)

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

Из-за специфики названий тип файла htaccess не всегда заметен. Чтобы его увидеть, необходимо активировать “ dot files ” или “ .files ” в вашем программном обеспечении FTP/Cpanel. Если возникают сложности, можно создать и редактировать файл как .txt (просто изменить расширение и название во время загрузки).

Всегда делайте бэкап htaccess, когда собираетесь внести какие бы то ни было изменения. Если ошибетесь, сайт высветит ошибку 500 Internal Server Error, и для последнего изменения можно будет просто поместить символ # перед кодом в файле htaccess.

  1. Вы можете комментировать ссылки в htaccess с помощью # , количество символов не имеет значения; к примеру, ## или ### можно использовать для описательных комментариев, а один # — для активации/деактивации кода.
  2. Используйте блокнот для редактирования в Windows, это удобно.
  3. Всегда делайте бэкап.
  4. Htaccess применяется к каталогу, в котором находится, и, таким образом, ко всем каталогам уровнем ниже; это значит, что при перемещении в корневой каталог, он сможет управлять всем сайтом.
  5. Ошибки в htaccess провоцируют 500 Internal Server Error ( внутреннюю ошибку сервера), но без паники — восстановите резервную копию или откомментируйте последний код.

Перезапись кода

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

## Rewrite Engine Code ##

Options +FollowSymLinks

RewriteEngine on

Управление ошибками

По умолчанию браузер показывает страницу 404, с помощью htaccess страницу можно изменить. Создание интересной страницы 404 — тема для отдельной статьи.

Вы можете создавать собственные страницы в любом формате PHP/HTML.

Они не обязательно должны быть в корневом каталоге, но обязательно на одном сервере.

Если поместите URL целиком, тогда статус 404 не появится, скорее всего будет 301 или 200 Error.

ErrorDocument 404 http://www.example.com/404.html

## Error Handling Codes ##

ErrorDocument 401 /401.html

ErrorDocument 403 /403.html

ErrorDocument 404 /404.html

ErrorDocument 400 /400.html

Можно использовать больше или меньше кодов. Полный список кодов ошибок по ссылке Wikipedia.

Временная блокировка индексации

К примеру, может понадобиться, чтобы некоторое время люди вначале попадали на промостраницу. (Вы можете использовать index.php и для других целей).

Это больше относится к сфере общей безопасности и юзабилити, чем к SEO .

Этот сниппет кода блокирует доступ пользователей к спискам файлов.

## Block Index Display ##

Options All -Indexes

Set Default Index File

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

## Set Default Index Files ##

DirectoryIndex newindex.html

Защита Htaccess

Ваш файл htaccess потенциально уязвим, поэтому обезопасьте его.

## Secure htaccess file ##

<Files .htaccess>

Order Allow,Deny

Deny from all

</Files>

Если у вас WordPress, такой код защитит файл wp-config.php.

## Secure wp-config.php ###

<Files wp-config.php>

Order Allow,Deny

Deny from all

</Files>

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

С помощью htaccess вы можете защитить определенные сегменты сайта. Вот полезный инструмент для создания этих файлов http://www.tools.dynamicdrive.com/password/

Так, с помощью htaccess и похожего файла htpasswd вы можете блокировать общий доступ к любому файлу или папке на сайте.

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

MyUsername:MyPassword

Нужно загрузить файл htpasswd в соответствующее место на сервере с помощью любой программы для пересылки файлов, это должен быть каталог не для общего доступа (не помещайте в /www/ или /htdocs/ ). И еще нужно записать путь файла из корневого каталога, это может выглядеть так:

/private/script/.htpasswd “.

После загрузки в htaccess добавляется новый раздел.

AuthName “Restricted Area”

AuthType Basic

AuthUserFile /private/script/.htpasswd

<Files /downloads>

require valid-user

</Files>

Блокировка прямых ссылок (хотлинкинг)

htaccess экономит полосу пропускания, таким образом решается проблема известная как хотлинк ( включение в веб-страницу ресурсов чужого сервера) .

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

## Block Hotlinking ##

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]

RewriteCond %{HTTP_REFERER} !^$

RewriteRule .*\.(jpe?g|gif|bmp|png)$ – [F]

Если только 1-2 специфических сайта (обычно социальные) приводят к данной проблеме, используйте код:

## Block Hotlinking ##

RewriteEngine On

RewriteCond %{HTTP_REFERER} ^http://(.+\.)?myspace\.com/ [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://(.+\.)?friendfeed\.com/ [NC,OR]

RewriteCond %{HTTP_REFERER} ^http://(.+\.)?livejournal\.com/ [NC]

RewriteRule .*\.(jpe?g|gif|bmp|png)$ – [F]

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

«Сохранить как»

Если у вас блог или другой контентный сайт, определенные файлы будут провоцировать диалог “Save As” (сохранить как), вместо того, чтобы браузер их загружал. Этот код идеален для каталога ресурсов.

Целесообразнее выбрать определенный подкаталог для кода.

## Force a file to download with a “Save As” ##

AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4

Перенаправить всех, c сохранением IP

Этот способ удобен во время внеплановых работ по технической части.

## Redirect Everyone but Selected IP Address ##

ErrorDocument 403 http://www.myoldsite.com

Order deny,allow

Deny from all

Allow from 111.111.111.111

Понадобится изменить ваш собственный IP-адрес (скопировать линию для каждого IP сотрудников), и отключить это, когда все будет готово.

Выборочная блокировка IP

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

Также вы можете с помощью этого сайта сгенерировать код блокировки любых IP:

Block IPs with .htaccess

## Block IP Address ##

order allow,deny

deny from 127.0.0.1

deny from 127.0.0.2

deny from 127.0.0.3

allow from all

Раздел 2: перенаправления и перепись

Htaccess позволяет переписать и изменить URL, заменить автоматически созданные ссылки.

Перенаправление с http:// на www

Это старая проблема — добиться, чтобы сайт индексировался и в http://mydomain.com, и в www.mydomain.com.

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

Данная часть кода превратит любой запрос для версии http в www.

## Redirect non-www to the www version ##

RewriteCond %{HTTP_HOST} ^example.com [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Измените example.com на своей домен.

Перенаправление файла индекса (Index File) в корневой каталог

Еще одна проблема двойной индексации: поисковики индексируют и

www.example.com/ и www.example.com/index.php.

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

## Redirect index to root ##

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.html\ HTTP/

RewriteRule ^(.*)index\.html$ /$1 [R=301,L]

В этом коде нужно изменить и название файла индекса (в 99% случаев это просто индекс), и расширение (обычно html, htm or php).

Перенаправление всех страниц на SSL

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

Еще понадобится сертификат безопасности и настройки сервера.

RewriteBase /

RewriteCond %{REMOTE_HOST} !^111\.11\.11\.11

RewriteCond %{REQUEST_URI} !^/downtime\.html$

RewriteRule ^(.*)$ /downtime.html [R=302,L]

## Redirect all Pages to Secure ##

RewriteCond %{HTTPS} !on

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Стандартное перенаправление 301

Перенаправление 301 сообщает Google и браузерам, что запрашиваемая страница перемещена в другое место.

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

Это намного лучше в сравнении со страницей 404, так, по крайней мере, внешние ссылки будут попадать на рабочие страницы.

## Standard 301 Redirect for Permanent Changes ##

redirect 301 /old-page.html http://www.example.com/newpage.html

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

Для больших сайтов перенаправления целесообразнее группировать по дате — так проще. Помните, что можно добавить # и превратить линию в комментарий.

Стандартное перенаправление (301) — подкаталог

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

Есть два способа сделать это:

## Redirect for a Directory – Preserves Request ##

RedirectMatch 301 ^/old-folder(.*) http://www.example.com/$1

Первый — сохраняет запрашиваемый файл. Если кто-то запрашивает mysite.com/blog/example.html — последует перенаправление на mystie.com/example.html.

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

Лучше убедиться, что новые файлы присутствуют, в противном случае появится 404.

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

## Redirect a Directory – Does not preserve Request ##

RedirectMatch 301 ^/old-folder(.*)$ http://www.example.com/new-page.php

Опять же, кастомизировать эти коды очень просто. Нужно лишь вписать старый каталог и новые локации . Если хотите перенаправить на новый подкаталог, просто измените окончание url, чтобы там был подкаталог, но проверьте, что вы оставили $1 в первом примере.

302

Разница между пренаправлениями 301 и 302 в том, как их фиксируют поисковые роботы. Google вряд ли обновит свой индекс для 302, но для 301 это очень даже вероятно. 302 стоит использовать только тогда, когда изменения временные и вы хотите, чтобы Google их игнорировал. Чтобы превратить перенаправление в 302, просто измените цифру в начале. Это работает применительно ко всем сниппетам кодов перенаправления, где используется 301.

## Standard 302 Redirect for Temporary Changes ##

redirect 302 /old-page.html http://www.example.com/newpage.html

Изменение типа запросов файлов

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

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

## Code to make all HTML requests become PHP requests ##

RedirectMatch 301 (.*)\.html$ http://www.example.com$1.php

Для кастомизации вы можете заменить типы файлов, в данном случае html — старый тип, а php — новый.

Перенаправьте все подкаталоги, за исключением корневого каталога

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

## Redirect an Entire Domain – Preserve Request ##

RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]

 

## Redirect all Subfolders to New Domain but Keep Root Intact ##

RewriteRule ^([^/]+)\/(.*)$ http://www.example.com/$1/$2/$3 [R=301,L]

Перенаправление всего домена

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

У вас должен быть Google Webmaster Tools, установленный на старом домене, затем вы сможете сообщать Google, что перемещаете домены.

Есть два способа: с сохранением запросов и без. Если у нового домена будет такой же сайт и столько же страниц и ресурсов, тогда лучше сохранить запросы. Другими словами, пользователь, запрашивающий /best-page.html на старом сайте, увидит best-page.html на новом.

Вы можете сделать полное перенаправление домена без сохранения запросов.

По сути, нужно отдельно перенаправить разделы веб-сайта на соответствующие разделы нового сайта, но есть более простой способ.

## Redirect an Entire Domain – No Preservation ##

Redirect 301 / http://www.newdomain.com

Перепись динамического URL

Большинство динамических URL выглядят примерно так:

http://www.mysite.com/posts.php?category=widgets

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

Для оптимизации URL нужно убрать строку запросов и использовать ее для создания структурированного URL.

В первом случае сделаем URL, который заканчивается как статический файл, то есть превратим URL в http://www.mysite.com/posts-about-widgets.php

RewriteRule ^posts-about-([^/]+).php/?$ /posts.php?category=$1&foo=bar [L]

RewriteCond %{QUERY_STRING} category=([^/]+)

RewriteCond %{QUERY_STRING} !foo=bar

Задается маппинг старого URL на новом.

Здесь три линии; первая определяет место старого URL на новом, вторая — место 1-ой строки запросов, третья — точка остановки, чтобы избежать беспрерывного перенаправления.

Первая линия позволяет установить формат новой страницы, в нашем случае это http://www.mysite.com/posts-about-widgets.php.

Вы можете изменить первую часть URL.

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

В этом примере — посты из категории виджетов, поэтому нужны соответствующие ключевые слова в URL.

PHP — тип файла, который используется в данном случае, но это может быть html или htm.

Третья выделенная часть содержит оригинальный URL и строку запросов. Включено только поле, значение переносится как переменная.

Вторая линия содержит ссылку на переменную, понадобится изменить поле — добавить ваш URL, а все остальное оставить. По сути, этот код сообщает: «любое количество различных символов и цифр».

Теперь у нас новая страница, но, вероятнее всего, система все еще будет генерировать старые ( уродливые) URL, поэтому нужно перенаправить людей на новую страницу. Для этого понадобится правило переписи/замены Rewrite Rule , которое заменяет запросы для строки запросов в новом ярком URL:

RewriteRule ^posts\.php$ /posts-about-%1.php? [L,R=301]

Относительно просто, не так ли? Нужно только поместить ваш старый URL в первую часть, ваш новый URL — во вторую часть. И вуа-ля! Динамическое перенаправление на новую страницу со старой переменной готово!

Совместим части кода. Мы заменили пример с текстом для вставки, чтобы запомнить части, к которым относится каждое утверждение (statement).

Возможно, вы захотите перейти к новому типу URL, возможно, вернуться обратно, к странице http://www.mysite.com/posts/widgets instead of that .php. Это также возможно, нужно лишь немного изменить код.

## Rewrite Dynamic URL to A Static Page ##

RewriteRule ^new-page-([^/]+).php/?$ /old.php?field=$1&foo=bar [L]

RewriteCond %{QUERY_STRING} field=([^/]+)

RewriteCond %{QUERY_STRING} !foo=bar

RewriteRule ^old\.php$ /new-page-%1.php? [L,R=301]

 

## Rewrite Dynamic URL to A Static SubFodler ##

RewriteRule ^new-folder/([^/]+)/?$ /old.php?field=$1&foo=bar [L]

RewriteCond %{QUERY_STRING} field=([^/]+)

RewriteCond %{QUERY_STRING} !foo=bar

RewriteRule ^old\.php$ /new-folder/%1/? [L,R=301]

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

Раздел 3: скорость и тонкая настройка

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

GZIP compression

GZIP compression — серверная функция, которая уменьшает вес веб-страниц и скриптов прежде, чем они отправляются в браузер.

Прежде эта технология была довольно несовершенной, в особенности в безопасных разделах и платежных шлюзах. Сейчас все на порядок лучше. Большая часть браузеров (даже старых) принимает GZIP.

Есть несколько вариантов активировать GZIP. Не нужно изменять код — просто скопируйте и вставьте.

На этом сайте можно проверить, активирован ли GZIP на вашем ресурсе, и сколько времени/места сэкономлено.

http://www.gidnetwork.com/tools/gzip-test.php

Вот четыре способа, выберите один из них:

## Enable GZIP Version 1 ##

php_value output_handler ob_gzhandler

css_value output_handler ob_gzhandler

js_value output_handler ob_gzhandler

 

##ENABLE GZIP Version 2##

<Ifmodule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_dechunk Yes

mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$

mod_gzip_item_include handler ^cgi-script$

mod_gzip_item_include mime ^text\.*

mod_gzip_item_include mime ^application/x-javascript.*

mod_gzip_item_exclude mime ^image\.*

mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</Ifmodule>

 

##Enable GZIP Version 3##

<Files *.php>

SetOutputFilter DEFLATE

</Files>

<Files *.js>

SetOutputFilter DEFLATE

</Files>

<Files *.css>

SetOutputFilter DEFLATE

</Files>

<Files *.html>

SetOutputFilter DEFLATE

</Files>

 

##Enable GZIP Version 4##

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Активация кэширования

Кэширование позволяет постоянным посетителям не загружать повторно каждый элемент сайта. Если у вас WordPress, тогда можно взять несколько плагинов, например WP Hyper Cache.

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

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

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

## Enable Caching ##

## Files to Cache for One Month ##

<FilesMatch “\.(flv|gif|jpg|jpeg|png|ico|swf)$”>

Header set Cache-Control “max-age=2592000”

</FilesMatch>

 

## Files to Cache for One Week ##

<FilesMatch “\.(js|css|pdf|txt)$”>

Header set Cache-Control “max-age=604800”

</FilesMatch>

## Files to Cache for One Day ##

<FilesMatch “\.(html|htm)$”>

Header set Cache-Control “max-age=43200”

</FilesMatch>

 

## Disable cache for script files ##

<FilesMatch “\.(pl|php|cgi|spl|scgi|fcgi)$”>

Header unset Cache-Control

</FilesMatch>

GZIP и кэширование существенно улучшают производительность сайта.

Минимизация 404 за счет проверки грамматических ошибок

Check Spelling — это модуль сервера Linux Server Module. Check Spelling проверяет сервер на предмет наличия подобных URL.

К примеру, пользователь допускает ошибку, вписывая в браузер такой адрес:

http://www.mysite.com/caje/red.html

Но на самом деле он/она хотел написать:

http://www.mysite.com/cake/red.html

Check Spelling фиксирует такую незначительную ошибку и исправляет ее (если, конечно, не существует caje/red.html). Также учитывается состояние регистра строчных и прописных символов в URL.

##Make Linux correct case sensitive urls/slight typos in urls##

CheckSpelling On

что такое .htaccess зачем нужен как настроить

Для чего служит .htaccess?

Набирая адрес в строке браузера, вы получаете на свой компьютер файлы, которые отображает браузер. Управление тем, какие файлы и как вам показывать (пересылать) осуществляет веб-сервер. Наиболее популярных серверов два: IIS и Apache.
Как и любая программа, веб-сервер имеет определенные настройки. Но, у вас, как пользователя Апача может (и скорее всего не будет, если говорить о виртуальном хостинге) прав менять конфигурацию Апача через его главные файлы, действие которых распространяется на всех пользователей этого сервера. Но, вы можете менять некоторые конфигурационные файлы, который распространяют свое действие только на ваш сайт. Один из таких файлов — .htaccess
Это файл гибкой настройки веб-сервера Апач. «Гибкий» обозначает, что как только вы поменяли что-то в этом файле, изменения тут же вступают в силу. С помощью него можно переопределить многие директивы из файла httpd.conf (этот файл является главным конфигурационным файлом сервера Апач и его действия распространяются полностью на всех пользователей данной копии Апача). В случаях, когда у вас нет доступа в файлу настройки Апача (тот же виртуальный хостинг), вам поможет именно этот файл.

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

|-user
| |
|  -user1
|        |
|         -user2
|
|-data
| |
|  -data1
|      |
|       -data2
|

Директории user1 и user2 будут вложенными по отношению к директории user. Если мы поместим в директорию www файл .htaccess, то его действие будет автоматически распространяться и на директории user1 и user2.
В директорию data помещаем другой файл .htaccess, по-сравнению, с тем, что находится в директории user. И для директорий data1 и data2 будет действовать файл .htacсess, находящийся в data.

Теперь, в директорию user2 мы помещаем еще один файл .htaccess, который отличен от того, что находится в директории 2мя уровнями выше (это директория user). В итоге, настройки для директории user2 будут определяться только тем файлом .htaccess, который находится в этой директории.
Так как чаще всего Апач настроен так, что всегда ищет этот файл в директории, то .htaccess поможет вам быстро и без останова сервера произвести его перенастройку.


[ оглавление ]

Синтаксис .htaccess

Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера:
— пути к файлам (директориям) указываются от корня сервера. Пример: /opt/home/www.astanafoto.com/htdocs/config/.htpasswords
— домены с указанием протокола
Пример: Redirect / http://www.site.ru

Файл имеет название именно «точка» htaccess

Должен быть записан в UNIX-формате. Для оболочки FAR, достигается F4 (редактирование файла), Shift+F2 (выбрать «сохранить как UNIX-текст»).


[ оглавление ]

Как запретить веб-посетителям читать файлы в директории?

Запрет на все файлы:
deny from all
Где all обозначает «все».


Разрешить доступ с определенного ip:
order allow deny
deny from all
allow from <ваш ip>
В данном случае, <ваш ip> обозначает конкретный адрес.
Например:
order allow deny
deny from all
allow from 192.126.12.199


Запретить доступ с определенного ip:
order allow deny
deny from all
deny from <ваш ip>
Использование <ваш ip> аналогично для примера выше.


Запрет на группу файлов по маске:
<Files "\.(inc|sql|...другие расширения...)$">

order allow,deny
deny from all
</Files>
Определяет доступ к файлу по его расширению.
Например запрет на доступ к файлам с расширениям «inc» для веб-посетителей:
<Files «\.(inc)$»>
order allow,deny
deny from all
</Files>

В данном примере сам веб-сервер Апач может обращаться к файлам с таким расширениям.


Запрет на конкретный файл:
Можно поставить запрет на конкретный файл по его названию и расширению.
<Files config.inc.php>
order allow,deny
deny from all
</Files>
В данном примере стоит запрет на обращения к файлу config.inc.php.


Пароль на директорию:
AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
require valid-user
</Files>
Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.

Например в директории, которую защищаем паролем создаем такой .htaccess:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
</Files>

В этом примере, посетитель при запросе директории, будет читать фразу «For Registered Users Only», файл с паролями для доступа должен лежать в директории /pub/site.ru/ и называться .htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.


Пароль только на 1 файл:
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:
<Files private.zip>

AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>


Пароль на группу файлов:
Аналогично, используя <Files «\.(inc|sql|…другие расширения…)$»>, можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением «sql»:
<Files «\.(sql)$»>
AuthName «Users zone»
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
</Files>


[ оглавление ]

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

Задача: есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ только к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз — при доступе к a1, но при этом соблюдать права на доступ к а2 и а3.
Ник и пароль запрашиваются только при входе на а1 — если у юзвера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка «введите пароль».

www.site.ru/a1
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 — общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей.


файл .htaccess для каталога а1:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
<Files *.*>
require valid-user
</Files>
файл .htaccess для каталога а2:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
<Files *.*>
require user юзвер1 юзвер2 юзвер3
</Files *.*>

файл .htaccess для каталога а3:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
<Files *.*>
require user юзвер1 юзвер4 юзвер5
</Files *.*>


[ оглавление ]

Как сделать перенаправление (редирект) посетителя?

Редирект на другой url:
Что бы сделать перенаправления посетителя на сайт http://site.ru в .htaccess Redirect / http://www.site.ru

Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html
Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html


Перенаправление посетителя при запросе определенных страниц:
Это уже для всех сетевых вирусов и сканеров. Теперь любой запрос с адресом /_vti_bin будет автоматически перенаправляться на Microsoft:redirect /_vti_bin http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /c http://www.microsoft.com
redirect /d http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1


[ оглавление ]

Как сделать стартовой другую страницу?

Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
DirectoryIndex <нужная страница>Можно указывать несколько страниц.DirectoryIndex index.shtml index.php index.php3 index.html index.htm

[ оглавление ]

Как заставить Апач обрабатывать SSI директивы?

SSI позволяют «собирать» страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем — нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с <Directory/> и заканчивающийся </Directory> в строку Options Indexes добавьте Includes.

После, в файле .htaccess пишем:

AddHandler server-parsed .shtml .shtm .html .htm


[ оглавление ]

Как заставить Апач выполнять в html документах php код?

Иногда бывает полезно «обмануть» посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов. Некоторые делаю мелкие фишки, вроде того, что дают фалам расширения совпадающие с какими-либо «знаковыми» именами. Например, на сайте www.osg.ruиспользуются файлы с расширением osg: index.osg, script.osg и т.п.RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
При большой посещаемости сервера может вызвать тормоза. Спрашивайте у админа.

[ оглавление ]

Как самому обрабатывать ошибки Апача?

Наиболее интересные и полезные ошибки Апача это: 403-404, 500.
403 — пользователь не прошел аутентификацию, запрет на доступ (Forbided).
404 — запрашиваемый документ (файл, директория) не найден.
500 — внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла .htaccess).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в .htaccess пишем:

ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

При этом при возникновении 404 ошибки пользователю загрузится файл errors/403.html.


Удобно делать собственный обработчик на некоторые ошибки. В .htaccess пишем:
ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404
ErrorDocument 500 /errors/error.php?500
В error.php через $HTTP_SERVER_VARS[‘REQUEST_URI’] определяем какой документ вызвал ошибку и дальше обрабатываем. Если в .htaccess на ErrorDocument стоит указание файла с полным путем (http://site.ru/error.php), то $HTTP_SERVER_VARS[‘REQUEST_URI’] будет содержать этот файл, а не вызвавший ошибку.
В Internet Explorer 5.0 неправильно обрабатывается файл, вызывающийся при ошибке, если его размер меньше 1 килобайта. Будет вызвана стандартная страница IE 404.


[ оглавление ]

Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

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

[ оглавление ]

Можно ли указать кодировку на все файлы, в которой по умолчанию получает документы браузер?

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

[ оглавление ]

Можно ли указать кодировку на загружаемые файлы?

При загрузке посетителем файла на сервер, возможна перекодировка его — указываем, что все получаемые файлы будут иметь кодировку windows-1251:CharsetSourceEnc windows-1251

[ оглавление ]

Создал файл .htaccess, но сервер выдает 500 ошибку — Internal Erorr

Ошибка синтаксиса или файл записан не в том формате.
Смотрите вопрос #2.

[ оглавление ]

Благодарности
Использованы материалы:
http://hostforum.ru
http://phpdev.com
http://webhowto.ruНемножко копирайтов by pablo [ www.tamboff.ru ] Источник: http://www.wmaster.ru

Что такое .htaccess? Создание htaccess, настройка, примеры и редиректы.

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

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

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

Что такое файл .htaccess?

Говоря в общем, файл .htaccess – это серверный документ, который используется для настройки уровня доступа к файлам и папкам, правил переписи URL или сообщений об ошибке. Наиболее часто этот файл ассоциируют с отображением страницы ошибки 404 (когда пользователь пытается перейти на страницу сайта, которой не существует). Кроме этого, файл .htaccess часто используется для оптимизации сайта под поисковые системы. Применение редиректа 301 укажет поисковым системам путь до нового расположения контента или URL – это, в принципе, и есть главная ответственность на плечах этого файла.

Файл .htaccess также тесно связан с современной структурой постоянных ссылок, которые применяются в CMS вроде WordPress. Еще до того, как редиректы URL обрела широкую известность, страницы и записи располагались по адресу вроде http://web-profy.com/blog?p=1355

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

  • Таким образом мы получили ссылки в формате http://web-profy.com/chto-takoe-htaccess.htm

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

Файл .htaccess наиболее тесно связан с хостингами, базирующихся на Apache. Они распространены в случаях с Apache версий 1.х и 2.х, и выполняет практически же функции и имеет тот же язык программирования.

Есть ли у меня файл .htaccess и могу ли я создать его?

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

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

 

Это можно узнать, просто авторизовавшись в Plesk Panel или cPanel, где можно будет найти файл .htaccess посредством веб-интерфейса файлового браузера. Этот файловый браузер предназначен для того, чтобы можно было видеть скрытые директории и файлы, и он покажет вам .htaccess-файл в директории public_html, так как даже обычные веб-браузеры и FTP-клиенты зачастую скрывают его. Посредством этого веб-интерфейса и встроенного в него текстового редактора мы можем отредактировать его и сохранить, и он автоматически будет загружен на сервер.

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

 Примеры использования файла .htaccess?

Файл .htaccess лучше всего использовать для оперирования ошибок на сайте (вроде 404 или 301), для переписи URL или для того, чтобы выставить права на пользование директорией. Это отлично подходит, когда нужно указать новое расположение старого контента, при создании страницы ошибки для контента, которого больше не существует, для того, чтобы запросить пароль доступа к некоторым файлам или папкам на сервере, либо для того, чтобы превратить URL в более понятные и простые. Давайте рассмотрим некоторые варианты применения файла .htaccess:

1. Перенаправление старых ссылок на новые страницы с помощью редиректа 301

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

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

Redirect 301 http://domen.ru/old-page/ http://domen.ru/archive/new-page/

Вышеприведенный код должен быть вполне понятен. Но давайте все разъясним тем, кто ничего не понял. Первая часть кода, Redirect 301, указывает на тип ошибки и означает, что должно произойти перенаправление в тот момент, когда робот поисковой системы пытается обнаружить контент по старой ссылке. Первый URL-адрес показывает старую ссылку на контент, а второй URL ведет на уже обновленное место расположения контента. Хотя этот пример использует один и тот же домен для обоих URL,  редирект 301 позволяет вам перенаправлять пользователей и поисковые системы на новые доменные имена.

2. Защита файлов и директорий с помощью .htaccess и .htpasswd

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

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

ValidUser: neprostoyparol

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

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

AuthUserFile /server/path/of/.htpasswd
AuthType Basic
AuthName "Заголовок защищенной страницы"

<Files "login.php">
Require ValidUser
</Files>

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

3. Вывод страницы ошибки 404 для отсутствующих страниц и папок

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

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

ErrorDocument 404 /path/to/the/404-error-page.htm

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

Важная часть дизайна сайта и работы

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

Алексей Повловский

Для чего нужен файл .htaccess в WordPress и как его настроить

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

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

Файл .htaccess в WordPress дает возможность настроить сайт индивидуально под каждого вебмастера. С помощью него администратор может:

  1. Закрыть доступ к важным папкам в каталоге сайта. Например, закрыть доступ к одному из наиболее важных файлов в WordPress, а именно файлу wp-config.php, где хранятся основные настройки и пароли базы данных. Файл .htaccess в Вордпресс, размещенный в корень папки, где и расположен этот файл, позволяет, таким образом, защитить сайт от взлома.
  2. Увеличить быстроту загрузки страниц сайта с помощью gzip сжатия. В результате сжатия, объем передаваемой для загрузки браузерами пользователей информации, будет сокращен приблизительно в два раза, это, в свою очередь, сократит время на загрузку. Но стоит учесть, что при этом увеличится нагрузка на сервер.
  3. Запретить подгрузку файлов с посторонних сайтов. Довольно часто встречается такая ситуация, что некоторые нечестные сайтостроители добавляют на свои сайты, например, ссылки на картинки с другого сайта, вследствие чего, при загрузке первого сайта, изображения загружаются с сайта «донора», увеличивая при этом нагрузку на его сервер. Сайт .htaccess на Вордпресс позволит избежать подобных ситуаций.
  4. Сделать активным кэширование на стороне пользователя. Во время самого первого перехода на сайт пользователем, в его браузере сохранятся все картинки, скрипты и др., в результате, когда он будет переходить между страницами, они не будут каждый раз загружаться, а будут браться непосредственно из пользовательского браузера, что ускорит загрузку.
  5. Запретить доступ к административной панели. Самый простой способ, это добавление в файл .htaccess своего IP адреса и тогда никто с другого компьютера не сможет войти в админку сайта. Но такой способ возможен только, если для входа в панель управления сайтом администратор использует постоянно определенный компьютер, в противном случае в файле .htaccess необходимо прописать все IP, которые будут использоваться для входа.
  6. Использовать файл .htaccess в Вордпресс для редиректа. То есть если доступ к старой ссылке сайта закрыт, возможно перенаправить пользователя на другую страницу.

Также файл .htaccess WordPress дает возможность закрыть доступ к сайту для отдельных поисковых роботов или же некоторых пользователей с определенным IP адресом и т. д.

Настройка файла .htaccess в WordPress

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

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

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

Как сгенерировать htaccess и для чего нужен этот файл на сервере

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

Htaccess файл — что это такое

Данный файл необходим для указания дополнительных конфигураций для серверов наподобие Apache. Htaccess не является названием этого файла, а его расширением. Образовано это слово от двух слов: гипертекст и доступ.

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

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

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

Как можно создать htaccess

Не пугайтесь странного расширения .htaccess. Такое расширение позволит вам сделать любой текстовый редактор, который есть у вас на компьютере. Главное, что нужно сделать, чтобы правильно создать файл — это при сохранении выбрать кодировку ANSI из списка. А в качестве имени пропишите .htaccess. Однако, не все операционные системы одинаково реагируют на создание безымянного файла с форматом .htaccess. Разберем как можно его создать при помощи популярного приложения Notepad++.

Откройте редактор Notepad++, после чего он автоматически сгенерирует новый текстовый файл. Если такое не произошло, тогда воспользуйтесь комбинацией Ctrl+N, либо нажмите пункт меню «Файл» и «Новый». Смена кодировки проходит очень просто — не трудно найти в верхней панели пункт «Кодировки» и в выпадающем списке выбрать ANSI. Главная особенность при создании .htaccess в Windows и Mac OS — это конверсия конца строк. Найти такой пункт вы сможете в меню «Правка» на панели управления. Вам необходимо будет выбрать «Преобразовать в UNIX-формат». Далее вам остается лишь зайти в меню сохранения файла, выбрать его формат All types и прописать имя .htaccess.

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

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

Что касается наполнения файла, не стоит забивать его всеми опциями, которые возможно прописать в htaccess. Используйте функции конфигурационного файла, только если до конца понимаете их предназначение. Обязательно пропишите модуль Rewrite. Он вам понадобится для того, чтобы запросы на доменное имя сайта с WWW автоматически перенаправлялись на адрес без WWW, или наоборот. Таким образом, вы уберете лишнее зеркало своего веб-ресурса, которое мешает раскрутке портала и приводит к дублированию информации. С другой стороны, вам следует также перенаправить все запросы на главную с index.html, чтобы ввод одного доменного имени уже считался попаданием на главную.

Также при помощи htaccess вы сможете прописать главенство файлов index.php и index.html в конкретных папках. Кроме того, данный файл позволяет решать проблемы, связанные с работой серверов Apache. Например, вы можете предотвратить баг со временем и работой скриптов php, если будете использовать мод mod_setenvif.

Похожие статьи

Оптимальный .htaccess для WordPress

Файл .htaccess содержит в себе настройки для хостинг-серверов на базе linux. Многие не задумываются о важности правильной конфигурации файла .htaccess для сайта. А ведь от этого зависит безопасность вашего сайта и многие другие аспекты его работы.

Мы рассмотрим оптимальный файл .htaccess для сайта на WordPress.

1. Зачем нужен файл .htaccess?

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

1) Безопасность:

  • Запрет листинга директорий (отображение всех содержащихся в директории файлов и папок).
  • Запрет различных SQL-инъекций (способ взлома сайта, основанный на внедрении в запрос произвольного SQL-кода).
  • Блокирование различных hacking tools (программ, скриптов для взлома сайта).
  • Защита ключевых конфигурационных файлов от доступа (файла wp-config.php, самого файла .htaccess и других).
  • Запрет прямого доступа к php, xml и ini файлам

2) Оптимизация загрузки и производительности сайта:

  • Оптимальный mod_headers (установка Vary: Accept-Encoding).
  • Настройка gzip-сжатия.
  • Настройка кеширования и периодов актуальности кеша (ExpiresByType).

3) Редиректы — перенаправления:

  • Включение mod_rewrite и перенаправлений.
  • 301 редирект — перенаправление с www.ваш-сайт.ru на ваш-сайт.ru либо наоборот.
  • 302 — документ перемещен временно.
  •  404 — файл не найден.
  • Другие редиректы, в том числе сложные.

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

Относитесь серьезно к безопасности вашего сайта!

2. Как создать файл .htaccess для вашего сайта?

Самый простой способ создания файла .htaccess — с помощью программы Total Commander.

  • Создаем с помощью блокнота или любого другого текстового редактора (к примеру, notepad++) файл htaccess.txt. Пока что это обычный текстовый файл.
  • Теперь открываем программу Total Commander, находим файл htaccess.txt, нажимаем правую кнопку мыши и выбираем «переименовать».

  • Переименовываем htaccess.txt  в .htaccess (обратите внимание: имя файла пустое, а .htaccess — это расширение файла).
  • Сохраняем изменения.
  • Теперь нам нужно расположить файл .htaccess в корневой директории сайта (там же, где расположен файл wp-config.php).

Для этого используйте любой FTP-клиент для загрузки файла на хостинг (можно использовать тот же Total Commander или Filezilla).

Пока что файл .htaccess пустой. Давайте наполним его содержимым.

3. Оптимальная конфигурация файла .htaccess для WordPress.

Внимание! Если вам не хочется вникать в детали — скачайте сразу оптимальный файл .htaccess для вашего сайта. После скачивания .htaccess закачайте в корневую папку сайта.

Оптимальный .htaccess для WordPress.(ссылка на Яндекс-диск).

  • Общие правила: все новые директивы настроек пишутся с новой строки. Чтобы закомментировать правило, поставьте в начале строки знак #
  • Важно: закомментированная строка не работает и служит как примечание для вебмастера.
  • Определенные модули параметров нажно заключать в секции, например <IfModule mod_headers.c> и </IfModule>.

Итак, рассмотрим какие секции файла .htaccess за что отвечают.

1) Закроем листинг файлов и папок:

Options +FollowSymLinks -Indexes

2) Включим mod_rewrite:

RewriteEngine On

3) Теперь добавим блок настроек безопасности:

# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a tag in URL.
RewriteCond %{QUERY_STRING} (|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS (=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST (=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
# Deny access to php, xml and ini files
# within components and plugins directories
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/xmlrpc\/
RewriteRule ^(.*)$ index.php [R=404,L]

# Prevent most common SQL-Injections
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]

# Block most common hacking tools
SetEnvIf user-agent «Indy Library» stayout=1
SetEnvIf user-agent «libwww-perl» stayout=1
SetEnvIf user-agent «Wget» stayout=1
deny from env=stayout

 4) Укажем редиректы, если это необходимо:

RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn’t directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn’t directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]

 

5) Настроим gzip-сжатие:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </ifmodule>
</IfModule>

 

6) Настроим кеширование и время актуальности кеша:

<IfModule mod_expires.c>
ExpiresActive On# Default expiration: 1 hour after request
ExpiresDefault «now plus 1 hour»# CSS and JS expiration: 1 week after request
ExpiresByType text/css «now plus 1 week»
ExpiresByType application/javascript «now plus 1 week»
ExpiresByType application/x-javascript «now plus 1 week»# Image files expiration: 1 month after request
ExpiresByType image/bmp «now plus 1 month»
ExpiresByType image/gif «now plus 1 month»
ExpiresByType image/jpeg «now plus 1 month»
ExpiresByType image/jp2 «now plus 1 month»
ExpiresByType image/pipeg «now plus 1 month»
ExpiresByType image/png «now plus 1 month»
ExpiresByType image/svg+xml «now plus 1 month»
ExpiresByType image/tiff «now plus 1 month»
ExpiresByType image/vnd.microsoft.icon «now plus 1 month»
ExpiresByType image/x-icon «now plus 1 month»
ExpiresByType image/ico «now plus 1 month»
ExpiresByType image/icon «now plus 1 month»
ExpiresByType text/ico «now plus 1 month»
ExpiresByType application/ico «now plus 1 month»
ExpiresByType image/vnd.wap.wbmp «now plus 1 month»
ExpiresByType application/vnd.wap.wbxml «now plus 1 month»
ExpiresByType application/smil «now plus 1 month»# Audio files expiration: 1 month after request
ExpiresByType audio/basic «now plus 1 month»
ExpiresByType audio/mid «now plus 1 month»
ExpiresByType audio/midi «now plus 1 month»
ExpiresByType audio/mpeg «now plus 1 month»
ExpiresByType audio/x-aiff «now plus 1 month»
ExpiresByType audio/x-mpegurl «now plus 1 month»
ExpiresByType audio/x-pn-realaudio «now plus 1 month»
ExpiresByType audio/x-wav «now plus 1 month»# Movie files expiration: 1 month after request
ExpiresByType application/x-shockwave-flash «now plus 1 month»
ExpiresByType x-world/x-vrml «now plus 1 month»
ExpiresByType video/x-msvideo «now plus 1 month»
ExpiresByType video/mpeg «now plus 1 month»
ExpiresByType video/mp4 «now plus 1 month»
ExpiresByType video/quicktime «now plus 1 month»
ExpiresByType video/x-la-asf «now plus 1 month»
ExpiresByType video/x-ms-asf «now plus 1 month»
</IfModule>

7) Настроим параметры mod_headers (Vary: Accept-Encoding)

<IfModule mod_headers.c>
<FilesMatch «\.(js|css|xml|gz)$»>
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

8) Защищаем от несанкционированного доступа файл wp-config.php:

<Files wp-config.php>
# Запрещаем всем доступ к файлу wp-config.php
order allow,deny
deny from all
</Files>

 

9) Защищаем от доступа сам файл .htaccess:

<Files .htaccess>
order allow,deny
deny from all
</Files>

 

10) Добавим правильную кодировку по умолчанию:

AddDefaultCharset utf-8

11) Перенаправление на домен без www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Внимание: замените адрес site.ru на адрес вашего сайта!

12) Перенаправление с домена без www на адрес с www:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^site\.ru
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

Внимание: замените адрес site.ru на адрес вашего сайта! Выберите только один вариант перенаправления: либо на www, либо на без www.


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

Поделитесь этой записью с друзьями, буду благодарен!

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

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