Htaccess как создать

Что такое .htaccess?

Файл .htaccess (англ. hypertext access) используется для простой и удобной настройки веб-сервера на котором хранится сайт пользователя. Соответственно меняя настройку веб-сервера, мы сможем поменять работу сайта. Как правило, файл .htaccess находится в корневом каталоге, а его действие распространяется на весь сайт и на все подкаталоги. Если же в другом каталоге содержится свой .htaccess, то он будет действовать только на свой каталог и подкаталоги.

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

Где находиться файл .htaccess?

Обычно он располагается в коневом каталоге сайта. Иногда, в различных CMS может находится файл htaccess.txt, который никак не воспринимается сервером и ни на что не влияет. Чтобы он начал работать нужно его переименовать в .htaccess. Если это не получится сделать на вашем компьютере, то зайдите на свой сервер через FTP-клиент, и переименуйте файл прямо сервере.


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

Как проверить работает ли .htaccess?

Все просто, напишите в первой строчке этого файла любое слово (например YAROBOT), сохраните файл и замените им находящийся на сервере. Если сайт продолжит работать, то .htaccess в данный момент не работает. Если же появится ошибка 500 Internal Server Error, то это значит, что веб-сервер не смог понять команду (YAROBOT) и выдал ошибку. Этот факт подтвердит, что работа .htaccess на сервере поддерживается и включена в данный момент. Чтобы вернуть сайту работоспособность удалите строчку с YAROBOT.

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

  1. Редирект между страницами или сайтами + изменение URL
  2. Обработка ошибок
  3. Настройка безопасности сайта
  4. Кодировка страниц сайта
  5. Оптимизация работы сайта
  6. Настройка PHP

Правильный 301 редирект через файл .htaccess

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

RewriteEngine On

301 Редирект с одной страницы на другую (или сайт)

Для этого в файл .htaccess вносим следующие строки:

Redirect 301 /старая-страница.html http://сайт.рф/новая-страница.html

или

RedirectPermanent /старая-страница.html http://сайт.рф/новая-страница.html

301 Редирект с www-сайта на сайт без www

Например перенаправление с http://www.site.com на http://site.com. Это очень полезная вещь, часто используется в СЕО

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Обратный редирект с домена без www на домен с www

Перенаправление с http://site.com на http://www.site.com (не советуем использовать)

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Редирект всех посетителей со старого сайта на новый

Redirect 301 / http://newsite.com/


Как добавить .html в конце URL?

Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в .htaccess следующее:

RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|?)
RewriteRule .* %1.html [R=301,L]
RewriteRule ^(.*)/$ /$1.html [R=301,L]

Как убрать .html в конце URL?

Обратный редирект с site.com/page.html на site.com/page

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

Как убрать слэш в конце URL?

Например было site.com/page/, стало site.com/page

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

301 Редирект с одного раздела на другой?

Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]

301 Редирект при переезде со старого домена на новый

Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page

RewriteCond %{HTTP_HOST} ^www.oldsite.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^test.oldsite.com$ [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]


Правильное изменение страниц ошибок через .htaccess

Когда пользователь хочет увидеть сайт (отправляет запрос на сервер хостера), то сервер возвращает ему ответ с кодом. Коды 1-399 свидетельствуют о нормальной работе сервера, а коды 400-599 сообщают об ошибке сервера (коды всех ошибок смотрите в спец. статье). Например, если сервер с вашим сайтом перегружен, или у него происходит перезагрузка, то пользователь увидит непонятный ему текст (например, 500 Internal Server Error), подумает, что сайт больше не будет работать и больше никогда на него не вернется. Чтобы вместо стандартной страницы ошибки (непонятно для пользователя) показать ему вашу отдельную страницу, на которой будет например, сообщение о том, что сайт временно не работает, но позже восстановит свою работу и на него обязательно стоит вернуться (сайт КиноПоиск при перегрузки серверов выдает сообщение «Матрица перезагружается…» и соответствующую картинку). Наиболее распространенным решением является составление собственной страницы вместо стандартной 404-ошибки. Эта ошибка показывается пользователю, если введен адрес несуществующей страницы. Думающие вебмастеры, создают свою страницу вместо непонятной стандартной, на которой пишут, что человек перешел по несуществующей ссылке и предлагают поискать нужную информацию на сайте, а не уйти с него. Пример нашей 404-страницы можно увидеть здесь. Чтобы показывать пользователям свою страницу ошибки вместо стандартной, нужно создать отдельную страницу (например http://yoursite.com/404.html) и добавить соответствующий код в файл .htaccess Вот примеры кода, который нужно добавить:


ErrorDocument 400 http://yoursite.com/400.html
ErrorDocument 404 http://yoursite.com/404.html
ErrorDocument 500 http://yoursite.com/500.html

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

ErrorDocument 403 «Sorry can’t allow you access today, see you later alligator :)»

Настройки безопасности сайта через файл .htaccess

Файл .htaccess дает большие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:

Защита сайта от скриптовых инъекций

#Включает отслеживание сим-ссылок
Options +FollowSymLinks
#Запускает url_rewriting
RewriteEngine On
#Блокирует все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
#Блокирует все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
#Блокирует все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
#Перенаправляет все подобные попытки на страницу с ошибкой 403 — запрещено
RewriteRule ^(.*)$ index.php [F,L]


Как защитить сайт от кражи картинок

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

Options +FollowSymlinks
#Запрещает кражу картинок
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?yoursite.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://yoursite.com/images/stop_stealing.gif[nc]

yoursite.com — адрес вашего сайта
http://yoursite.com/images/stop_stealing.gif — путь к картинке, которую вы сами должны создать. На ней обычно пишут «не крадите картинки с чужих сайтов» или что-то подобное.

Как заблокировать доступ к сайту для пользователя по IP?

Применяется против спамеров и прочих неадекватов, изредка для предотвращения хакерских атак.

#Вносим сюда нежелательные IP адреса
allow from all
deny from 164.186.15.116
deny from 124.153.34.144


Как заблокировать доступ к сайту для всех IP кроме проверенных?

Чтобы заблокировать доступ для всех, кроме конкретных IP-адресов, добавляем такой код:

#Запрещает доступ для всех, кроме указанных IP-адресов
ErrorDocument 403 http://www.yoursite.com
Order deny,allow
Deny from all
Allow from 164.186.15.116
Allow from 124.153.34.144

Как запретить просмотр содержимого конкретной папки

#Запрещает просмотр содержимого папки
Options All -Indexes

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

#Защищает файл myfile.txt
<files myfile.txt>
order allow,deny
deny from all
</files>

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

Например чтобы запретить доступ ко всем файлам .txt пишем так:

<Files «.(txt)$»>
Order Deny,Allow
Deny from all
</Files>

Блокируем ненужных User Agent-ов

Часто у пользователя в браузере установлено очень много расширений, которые передают серверу (на котором расположен ваш сайт) информацию о себе и другую лишнюю информацию. Такую же информацию посылают на сервер клиентские приложения установленные на компьютере пользователя, а также различные роботы и пауки. Информацию о большинстве актуальных на сегодня «Юзер Агентах» можно найти здесь.


#Блокирует нижеперечисленных User Agent-ов
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
<limit get=»» post=»» head=»»>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>

Изменение кодировки сайта через .htaccess

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

UTF-8 — универсальная двухбайтовая кодировка
Windows-1251 — Кириллица (Windows)
KOI8-r — Кириллица (КОИ8-Р)
cp866 — Кириллица (DOS)
Windows-1250 — Центральная Европа (Windows)
Windows-1252 — Западная Европа (Windows)

Также кодировку нужно указывать в мета-теге каждой страницы сайта, это сообщает браузеру в какой кодировке сделан сайт.

<meta http-equiv=»content-type» content=»text/html; charset=Windows-1251″>


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

AddDefaultCharset WINDOWS-1251

Если работают оба варианта (и мета-тег, и файл .htaccess), то очень важно, чтобы кодировка в них совпадала.

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

CharsetSourceEnc WINDOWS-1251

Чтобы выключить перекодировку сервера нужно вписать:

CharsetDisable on

Оптимизация работы сайта через .htaccess

Ускорение работы сайта через Gzip

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


<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>

или

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch «.(jpg|jpeg|gif|png|ico|css|js)$»>
ExpiresActive on
ExpiresDefault «access plus 1 month»
</filesmatch>
</ifmodule>

или

<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>

Как улучшить кэширование сайта на сервере?

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

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/javascript «access plus 7 days»
ExpiresByType text/javascript «access plus 7 days»
ExpiresByType text/css «access plus 7 days»
ExpiresByType image/gif «access plus 7 days»
ExpiresByType image/jpeg «access plus 7 days»
ExpiresByType image/png «access plus 7 days»
</IfModule>

или

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch «.(jpg|gif|png|css|js)$»>
ExpiresActive on
ExpiresDefault «access plus 1 month»
</filesmatch>
</ifmodule>

В выражении «access plus …» установите срок хранения файлов на компьютере пользователя. По истечении этого срока, при запросе к сайту файлы будут единоразово загружены с сервера. Оптимальным будет от 7 дней до месяца, хотя иногда устанавливается и год.

Изменение главной (индексной) страницы сайта

Как правило при заходе на сайт сначала загружается страница index.html или index.php. Чтобы изменить это правило (в начале станет загружаться mypage.php) добавляем в .htaccess такой код:

DirectoryIndex about.html

Настройка PHP-параметров через файл .htaccess

Обычно за настройки PHP отвечает файл php.ini, но часть этих настроек можно задать через .htaccess. Для этого используются два выражения: php_value — для логических значений (например включитьвыключить), и php_flag для числовых значений. Вот правила написания этих выражений:

php_flag директива1 ЗНАЧЕНИЕ1
php_value директива2 ЗНАЧЕНИЕ2

 

где ЗНАЧЕНИЕ1 может быть on, off, 1 или 0 (1 и on — означает включить, а 0 и off — выключить);

ЗНАЧЕНИЕ2 — любое числовое или буквенное значение, которое подходит под конкретную директиву;

директива1 (используется только с php_flag) может иметь значения:

magic_quotes_gpc — вклвыкл функцию magic_quotes_gpc

php_flag magic_quotes_gpc on

display_startup_errors — вклвыкл показ ошибок, которые происходят при работе PHP

php_flag display_startup_errors 1

display_errors — вклвыкл показ ошибки в браузер

php_flag display_errors 1

output_buffering — вклвыкл буферизацию вывода данных

>php_flag output_buffering on

register_globals — вклвыкл глобальные переменные

php_flag register_globals on

engine — вклвыкл исполнение PHP в папке в которой находится .htaccess и во всех вложенных

php_flag engine off

директива2 (используется только с php_value) может иметь такие значения:

upload_max_filesize — устанавливает максимальный размер загружаемого файла

php_value upload_max_filesize 10M

user_agent — задает значение строки user_agent, которую передает сервер

php_value user_agent “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”

post_max_size — задает максимальный размер пересылаемой почты

php_value post_max_size 10M

mysql.default_user — задает имя пользователя базы данных

php_value mysql.default_user databaseuser

mysql.default_password — задает пароль для пользователя БД

php_value mysql.default_password jk323jh4g

mysql.default_host — задает имя хоста БД (обычно это localhost)

php_value mysql.default_host localhost

sendmail_from — задает имейл для отправки почты с помощью PHP

php_value sendmail_from

auto_prepend_file — задает файл, который будет добавлен в начало каждого PHP-скрипта

php_value auto_prepend_file /www/publiс_html/myfile.php

auto_append_file — задает файл, который будет добавлен в конец каждого PHP-скрипта

php_value auto_append_file /www/publiс_html/myfile.php

ru.hostings.info

СОЗДАНИЕ ПРАВИЛЬНОГО ФАЙЛА HTACCESS

Htaccess как создать

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

Первое дело, которое Вы должны сделать – открыть блокнот.

(Рекомендую скачать и установить блокнот notepad ++, скачать можете здесь).

 Htaccess как создать

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

Сразу сохраним документ и дадим ему название htaccess. Теперь закидывайте его в корень Вашего блога.

ПОЕХАЛИ К ПРАВИЛЬНОМУ ФАЙЛУ HTACCESS

  1. Это установки по умолчанию главной страницы (DirectoryIndex pagename.html)
  2. Страницы ошибок (error)
ErrorDocument 403 /403.phpErrorDocument 404 /404.phpErrorDocument 500 /500.php

Название, то есть адрес страницы может выглядеть иначе, например, / error/page404.html.

ЗАЩИЩАЕМ БЛОГ ОТ ХОТЛИНКА ПРАВИЛЬНЫМ ФАЙЛОМ HTACCESS

Htaccess как создать

Что такое хотлинг – расскажу на примере: например, Вы написали статью и вставили в нее картинки, не секрет, что статьи постоянно воруют, обычно это делают подростки, чтобы якобы время не терять (если статьи на сайте или блоге не уникальны, то в скором будущем его ждет попадание под фильтр поисковых систем — АГС).

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

RewriteEngine on RewriteCond %{ HTTP_REFERER}! ^$ RewriteCond %{ HTTP_REFERER}! ^http ://( www.)?Vash_site.com/.*$ [NC] RewriteRule . (gif|jpg|js|css)$ - [F]

Vash_site.com — поменяйте на свой сайт.

Теперь в место Вашей картинки на чужом сайте будет на ее месте надпись – 403 ошибка. Можно сделать так, чтобы вместо ошибки 403 была специальная картинка, для этого замените последние две строки таким кодом:

RewriteRule . (jpg|png|gif)$ [NC, R, L]
В ПРАВИЛЬНОМ ФАЙЛЕ HTACCESS ЗАСТАВЛЯЕМ СОХРАНЯТЬ ФАЙЛЫ ВМЕСТО ИХ ОТКРЫТИЯ

Htaccess как создать

Бывает так, посетитель заходит к Вам на сайт и смотрит файлы онлайн, так вот если хотите, чтобы посетитель сохранял файл, то пишите в htaccess такое:

AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4
КЭШ ФАЙЛОВ БЛОГА

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

#кэширование html и htm на сутки<FilesMatch ". (html|htm)$">Header set Cache-Control "max-age=43200"</FilesMatch>#кэширование css, javascript и txt-файлов на неделю<FilesMatch ". (js|css|txt)$">Header set Cache-Control "max-age=604800"</FilesMatch>#кэширование flash и картинок на месяц<FilesMatch ". (flv|swf|ico|gif|jpg|jpeg|png)$">Header set Cache-Control "max-age=2592000"</FilesMatch>#запрет на кэширование скриптов<FilesMatch ". (pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch>

Внимание: параметр max-age показывает секунды.

Следующий код включает на блоге ошибки на время отладки:

php_flag display_errors on

Htaccess как создать

Настраиваем редирект, добавив код в файл htaccess. Настройка первого редиректа – 301:

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

Redirect 301 /oldpage.html https:// mysite.com/newpage.html

Либо вот так:

Redirect permanent /oldpage.html

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

Расклеиваем домены с www и, наоборот, без:

Редирект с mysite.com на www.mysite.com:

RewriteEngine OnRewriteBase /RewriteCond %{ HTTP_HOST}! ^www.yoursitename.ru$ [NC]RewriteRule ^ (.*) $ https://www.yoursitename.ru/$1 [L, R=301]

Теперь наоборот:

RewriteEngine on RewriteBase / RewriteCond %{ HTTP_HOST}! ^yoursitename.ru$ [NC] RewriteRule ^ (.*) $ https://yoursitename.ru/$1 [L, R=301]

В ПРАВИЛЬНЫХ ФАЙЛАХ HTACCESS СТОИТ ВТОРОЙ НА ОЧЕРЕДИ РЕДИРЕКТ – 302

Htaccess как создать

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

RewriteEngine onRewriteCond %{ REQUEST_URI}! /informpage.html$RewriteCond %{ REMOTE_HOST}!^12.345.678.90RewriteRule $ https://mysite.com/informpage.html [R=302, L]

Вместо 12.345.678.90 поставьте свой IP адрес, узнать его можете, задав этот вопрос в любой поисковой системе или здесь (хостинг Украина, если конечно Вы создавали там аккаунт вместе со мной).

КАК ПЕРЕАДРЕСОВЫВАТЬ ПОСЕТИТЕЛЕЙ НА ДРУГОЙ АДРЕС САЙТА ИЛИ БЛОГА

Htaccess как создать

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

ErrorDocument 403 https://www.mysite.comOrder deny, allowDeny from allAllow from 12.345.678.90Allow from 12.345.678.92

Последние две строки это IP адреса, с которых перенаправление работать не будет.

Можно переадресовать на https соединение, оно является безопасным:

RewriteEngine OnRewriteCond %{HTTPS}! onRewriteRule (. *) https://%{HTTP_HOST} %{REQUEST_URI}
СТАВИМ ЗАПРЕТ ИЛИ БЛОКИРОВКУ

Ставим запрет на листинг наших директорий:

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

Options All -Indexes Options + Indexes

Этим кодом мы с Вами запрещаем доступ к файлу.

Запретить можно любой файл, например – правильный файл htaccess, вот таким образом:

<Files .htaccess>Order allow, denydeny from all</Files>

Блокируем по IP адресу, для того чтобы спамеры не жили у Вас на блоге.

<Limit GET>Order Deny, AllowDeny from 12.345.678.90Deny from 90.876.543.Deny from .tvoe.tvAllow from all</Limit>

С помощью кода выше будут блокированы следующие IP адреса:

IP адрес с 12.345.678.90;

Будут блокированы абсолютно все посетители, которые попадают под IP от 90.876.543.0 до 90.876.543.255;

Также все посетители от tvoe.tv провайдера.

НАСТРАИВАЕМ ЧПУ С ПОМОЩЬЮ ПРАВИЛЬНОГО ФАЙЛА

Htaccess как создать

Если Вы уважаемый посетитель блога «новая система обучения» проходите курс «обучение онлайн», то Вы вместе со мной должны были создать блог на движке wordpress и настройку «постоянные ссылки ЧПУ» мы проходили в настройке блога wordpress.

Остальные посетители тоже могут зайти и почитать о настройке блога wordpress, о «постоянных ссылках ЧПУ» написано в конце статьи.

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

УБИРАЕМ ИЗ АДРЕСНОЙ СТРОКИ? P=

По умолчанию адрес страниц выглядит вот так: Vash_site.com/? p=xxxx, где xxxx – id статьи. Чтобы сделать человеко-понятный адрес вставьте следующий код в htaccess:

RewriteCond %{ REQUEST_URI} ^/ ([0-9] +) $RewriteRule.* https://yoursitename.ru/?p=%1 [R=301, L]

Как убрать из адресной строки category.  Пишем такой код:

RewriteRule ^category/ (. +) $ https://vash_site.com/$1 [R=301, L]

Ну и на завершение «JQuery framework», 100% подходит для тех оптимизаторов, которые начали изучать jQuery.

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

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

www.advdk.com

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к панели управления вашим хостингом

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

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

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

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

Как создать стандартный файл WordPress .htaccess

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

Шаги ниже покажут как создать файл в Файловом Менеджере Hostinger. Однако последовательность действий не должна особо отличаться от подобных на cPanel. Вы также можете создать файл на вашем компьютере и затем загрузить его с помощью FTP-клиента.

Для создания файла .htaccess с помощью Файлового Менеджера Hostinger, просто перейдите в корневой каталог вашего WordPress сайта. Обычно это каталог public_html. Далее, создайте текстовый файл и назовите его .htaccess.

как создать в wordpress htaccess

Откройте файл в любом текстовом редакторе. Файл .htaccess содержит несколько строк кода, который являются стандартными настройками сервера. В WordPress .htaccess должен выглядеть примерно так:

# BEGIN WordPress RewriteRule ^index.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

Просто скопируйте данный код и вставьте его в созданный файл .htaccess. Сохраните изменения и выйдите.

htaccess сохранить изменения

Поздравляем! Вы создали ваш собственный файл .htaccess. Теперь посетите ваш сайт и проверьте все ли работает правильно, так как неправильная настройка файла может привести к появлению ошибки 500 internal server error.

Заключение

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

В этом руководстве, вы:

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

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

www.hostinger.ru

И почему этот .htaccess такой особенный?

Профессиональные веб-разработчики отдают предпочтение использованию именно этого файла для настройки основных параметров веб-сервисов. Почему? Да потому что это мощный инструмент для установки дополнительной конфигурации на различных серверах (Denwer, Apache и других).

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

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

Текстовые редакторы

Пускай это и тривиально, но все-таки для предотвращения возможных вопросов я хочу добавить, что .htaccess отлично функционирует в любой операционной системе. Вы можете создать конфигурационный файл через любой текстовый редактор на своем компьютере. Например, в Windows это «Блокнот», в Mac OS это «TextEdit», в Ubuntu – «Gedit» и т.д.

Каким образом можно создать чудо-файл конфигураций

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

  1. Откройте любой редактор текстового контента (некоторые из них я ранее перечислил);
  2. После открытия пустого файла в меню выберете пункт «Сохранить как…»;
  3. В первую очередь поменяйте расширение файла. Оно не должно быть .txt. Если это стандартная программа Windows, то нужно из выпадающего списка выбрать пункт «Все файлы»;Сохраняем файл
  4. В наименовании документа напишите .htaccess, сохраняя точку перед словом;
  5. Обратите внимание на кодировку. Она обязательно должна быть ANSI;
  6. В ОС компаний Micosoft и Apple необходимо проверить еще один параметр – перенос слов. В данном документе с настройками есть команды, которые должны быть написаны строго в одну строку. Поэтому снимите галочку с данного пункта и нажмите «Сохранить».

Важные команды

Вот мы и подошли к самому интересному! Первоочередным правилом, которое стоит прописать, это кодировка. Для этого существует вот такая строка:

AddDefaultCharset UTF-8

Если необходимо указать другой вариант кодировки, то ее название вставьте вместо UTF-8.

Еще одна супер-команда – это редирект. Благодаря .htaccess можно легко и быстро установить redirect 301, который позволяет перенаправлять пользователей на другие ссылки, склеивать доменные имена независимо от того есть www или нет.

Так следующие строки кода направят юзеров на сайт coolWeb.com вне зависимости от того есть ли www или нет, а также указана ли в ссылке стартовая страница (coolWeb.com/index.html) или нет.

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

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

Подведение итогов

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

Для упрощения жизни девелоперам были созданы онлайн-генераторы кода для таких конфигурационных документов. В качестве примера можете ознакомиться с сайтом http://htaccess.ru/generator/. Сгенерированными правилами можно оперировать и для настройки сайтов, написанных на движках. Таким образом, их можно использовать для WordPress, OpenCard, Joomla! и других.

Надеюсь, вам понравился изложенный мною материал. Жду от вас заявок на подписку. Обязательно делитесь ссылкой на мой блог с друзьями. Пока-пока!

С уважением, Роман Чуешов

romanchueshov.ru

Возможности и для чего нужен

В данном файле сайтостроители могут:

  • Настраивать директивы простого перенаправления (редиректы). Это позволит после смены домена отправить посетителя со страницы предыдущего сайта на новый проект.
  • Переадресовывать с URL, где есть www, на домен без www. Или же на https после того, как установите ssl сертификат.
  • Описывать ошибки. В их числе и ошибка 404 с заменой на необходимую страницу.
  • Кэширование файлов. Делается с целью ускорения работы веб-ресурса.
  • Создавать ЧПУ. Это «Человеко-понятные УРЛы», то есть, формируются ссылки, понятные для интернет-пользователей.
  • Изменять исходный код страниц.
  • Управлять доступом к файлам и директориям при помощи паролей.
  • Задавать индексный файл.
  • Открывать и закрывать доступ с определенных IP-адресов.
  • Управлять поисковыми ботами на сайте.
  • Настраивать директивы сложного направления.

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

Конфигурации сервера изменяются только с использованием директив (команд), включающих в себя «ключ» и «значение» для него. Все самые важные директивы, позволяющие управлять сервером, находятся в основном файле конфигурации, называющимся httpd.conf. Проблема в том, что у рядового пользователя нет возможности получить к нему доступ, так как там находится большое количество параметров, от которых зависит работоспособность всего сервера. Вот почему актуален .htaccess, позволяющий менять некоторые директивы в главном файле.

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

Где находится .htaccess

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

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

Расположение htaccess на сервере

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

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

Как правильно создать .htaccess

Для этого вам понадобится самый обычный текстовый редактор, к примеру, Блокнот, который есть на любом ПК:

  1. Откройте Блокнот, ничего в нем не пишите.
  2. Выберите пункт «Файл» и нажмите «Сохранить как».
  3. Появится окно, где напротив пункта «Тип файла» выберите «All types» или «Все файлы».
  4. В строке «Имя файла» введите .htacces и кликните на «Сохранить».

Далее перепроверьте, создан ли документ правильно. Обязательно посмотрите, не сохранили ли вы его как .htaccess.txt. Затем загрузите файл в корневую папку сервера, и если не отобразится ошибка 500, значит, вы все сделали правильно.

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

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

Рассмотрим самые популярные команды для .htaccess.

Редирект

Эти директивы используются с завидной регулярностью. Они позволяют перенаправить посетителя со старого URL на новую страницу. Это возможно благодаря 301-редиректу. Достаточно в код файла вписать:

Redirect 301 /старый_URL.html http://www.название_вашего_сайта.ru/новый_URL.html

В целом директива будет отображена в таком виде:

Redirect [status] URL_LOCAL URL_REDIRECT

URL_LOCAL – это старый адрес, с которого осуществляется перенос пользователя.

URL_REDIRECT – новый URL, куда переносится страница.

В поле [status] могут быть следующие значения:

  1. 301 – страница перенесена навсегда.
  2. 302 – страница перенесена на время.
  3. 303 – смотрите другую страницу.
  4. 410 – страница удалена.

Mod_rewrite (директивы сложного переноса)

Этот модуль содержится в Apache. В нем есть изобилие самых разных директив для расширенного управления адресами. К основным из них относятся:

1. Указание основного зеркала

Предназначен для того, чтобы преобразовать домен с www на URL без www. Достаточно ввести правило:

RewriteEngine On # включает работу  RewriteCond %{HTTP_HOST} ^www.название_вашего_сайтаru$ [NC] #условия для начала перенаправления  RewriteRule ^( *)$ http://название_вашего_сайта_/$1 [R=301,L] #правило преобразования

2. Перенос на https

На сегодняшний день поисковик Google активно призывает владельцев сайтов к использованию безопасного соединения, для чего необходимо перенаправлять пользователей с http на https при помощи кода:

RewriteEngine On  RewriteCond %(HTTPS) !on  RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URL)

3. Проставление слеша в конце адреса

Если вы не хотите, чтобы URL страницы заканчивался названием каталога http://название_вашего_сайта.ru/catalog, введите в файл код:

RewriteCond %{REQUEST_URI} /+[^.]+$  RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

Выполнив данную команду, в дальнейшем после адреса в автоматическом режиме будет добавляться слеш: http://название_вашего_сайта.ru/catalog/

4. Перенос домена

Изменив название сайта, не забудьте в .htaccess указать:

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

Оптимизируя сайт и под Яндекс, и под Google, изменение доменного имени может быть чревато неприятными последствиями. Инструкции в robots.txt, предназначенные для Яндекса, перекрываются 301-редиректом. Но этого можно не допустить, добавив в код правило:

RewriteEngine on  RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]  RewriteRule ^([^/]+) $1 [L]  RewriteCond %{HTTP_HOST} ^mysite.ru  RewriteRule ^(.*)$ http://www.my-site.ru/$1 [R=301,L]

5. Запретные команды для поискового бота

В .htaccess, так же, как и в robots.txt, можно закрыть доступ к сайту для роботов поисковых систем:

RewriteEngine on  RewriteCond %{USER_AGENT} Googlebot  RewriteRule .* - [F] # F – выдает ошибку 403 – запрещено для сканирования

Обработка ошибок

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

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

ErrorDocument 404 /siteerror404.html

Индексные документы

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

DirectoryIndex name.xml

Либо добавить несколько таких страниц, и поисковик будет находить их в соответствующей последовательности:

DirectoryIndex index.html index.php index.pl

Указание кодировки

Данная функция нужна, чтобы текст отображался на экране пользователя правильно. Иначе вместо нормальной читабельной страницы он будет видеть непонятные символы. Сегодня широко распространена кодировка: Windows-1251 – Кириллица и UTF-8 – двухбайтовая кодировка. Для выбора кодировки в служебном документе, применяется директива:

AddDefaultCharset WINDOWS-1251

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

CharsetSourceEnc WINDOWS-1251

Указание паролей для директорий

Для этого в закрываемом каталоге пропишите:

AuthName "Need password" #сообщение для запроса пароля  AuthType Basic #тип аутентификации  AuthUserFile /passwords/.psd #имя файла, содержащее пароли для входа  Require valid-user #имя пользователей, которым открыт доступ

Доступ к файлам и директориям

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

Deny from all

Для запрета просмотра определенного файла, например, test.php:

<Files test.php>  deny from all  </Files>

Открыть просмотр для конкретного IP, и при этом закрыть доступ остальным, позволяет команда:

<Files "passwd.html">    Order Deny,Allow  Deny from all  Allow from 12.345.678.90  </Files>

Заключение

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

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

webmasterie.ru

Особенности настройки файла .htaccess и распространенные ошибки

Именно так, этот файл чаще всего вызывает банальную серверную ошибку 500 Internal Server Error. Редактировать файл необходимо очень осторожно и следовать следующим правилам:

  1. Всегда перед началом редактирования .htaccess файла сохраняйте его работоспособную копию.
  2. Никогда не вносите новые правила на рабочий сайт без предварительной проверки файла.
  3. Кодировка, как правило UTF -8.
  4. Каждое правило нужно писать с новой строчки.
  5. Исключаются те инструкции, которые не обрабатывает сервер Apache — сразу вызывают серверную ошибку.
  6. Нельзя писать несколько инструкций в одной строке — ошибка 500 будет Вам обеспечена.
  7. Будьте внимательны — лишний пробел или символ могут привести к ошибке.

nicola.top

Содержимое файла htaccess на WordPress

WP автоматически генерирует файл htaccess, после настройки красивых ссылок в разделе «Постоянные ссылки». Стандартно выглядит он так:

# BEGIN WordPress    RewriteEngine On  RewriteBase /  RewriteRule ^index.php$ - [L]  RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . /index.php [L]    # END WordPress

В htaccess, знак # воспринимают, как комментарий, так что не переживайте.

Если генерация не произошла, необходимо вручную создать и загрузить на сервер файл htaccess для wordpress. Чтобы избежать проблем при загрузке, временно изменяют уровень доступа к системе сервера на 777 или 775.
Для удобства редактирования файла htaccess, можно скачать и установить плагин All in One SEO или Seo by Yoast (плагины для сео-оптимизации). С их помощью, можно переписывать этот файл прямо в админке WP, без необходимости обращаться к файловой системе хостера.

Настройка htaccess для wordpress сайта

1. Прописываем запрет просмотра содержимого каталога (пусть будет к примеру каталог vverx), в котором нет файла index.txt.

Если, оставить стандартный файл, то по адресу в браузере http://goldserfer.ru/vverx/, любой пользователь может увидеть содержимое каталога и его файлов (листинг):

файл htaccess запрет листинга

Чтобы избежать этого, сразу после строки #  BEGIN WordPress прописывают следующую конструкцию:

<Directory /vverx/>  Options -Indexes  </Directory>

Директива Options позволяет задать ряд однотипных параметров. К примеру эта директива, может быть использована с параметром Indexes, которая в зависимости от знака ( -, + ), либо запрещает  показывать посетителю список файлов ( — ), если в выбранном каталоге нет файла index.txt или его аналога, либо разрешает ( + ). Эта директива очень актуальна, для защиты сайта от взлома хакерами.

2. По умолчанию WP работает с кодировкой UTF-8. Следующим кодом принудительно указываем метод кодирования, чтобы избежать проблем:

AddDefaultCharset UTF-8

Делается это всего лишь добавлением одной строки.

3. Сжатие контента. Контент сжимается на сервере и распаковывается на стороне клиента незаметно для пользователя, что снижает трафик и ускоряет загрузку страниц. Но увеличивает нагрузку на сервер за счет дополнительных действий.
В Apache два способа сжатия, самым популярный с помощью модуля mod_deflate. В файл htaccess добавляем следующие строки:

<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>

Для проверки заработало ли у вас сжатие mod_deflate или его предшественник Gzip, можно воспользоваться этим сервисом.

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

# Запрещение кеширования документов с php расширением  <IfModule mod_headers.c>  Header append Cache-Control "no-store, no-cache, must-revalidate"  </IfModule>  <IfModule mod_expires.c>  ExpiresActive On ExpiresDefault "now"  </IfModule>

На мой взгляд самое оптимальное решение кеширования для всех типов файлов, можно описать следующей конструкцией:

# Включаем кэш в браузерах посетителей  <ifModule mod_headers.c>  # Все html и htm расширения будут храниться в кэше браузера один день  <FilesMatch ".(html|htm)$">  Header set Cache-Control "max-age=43200"  </FilesMatch>  # Все css, javascript и txt форматы, будут храниться в кэше браузера одну неделю  <FilesMatch ".(js|css|txt)$">  Header set Cache-Control "max-age=604800"  </FilesMatch>  # Все флэш и изображения будут храниться в кэше браузера один месяц  <FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$">  Header set Cache-Control "max-age=2592000"  </FilesMatch>  # Отключаем кеширование php и других расширений  <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">  Header unset Cache-Control  </FilesMatch>  </IfModule>

Как сделать редирект htaccess правильно

Одна из основных возможностей htaccess — перенаправленные пользователей с одного URL или адреса на другой. Его используют, когда сайт переехал на другой домен, когда нужно «облагородить» страницы ошибок или страницы, которые были удалены. Это очень важный вопрос в seo-продвижении, так как неправильным редиректом, можно потерять часть ссылочной массы.
1. 301 — постоянный редирект, 302 — временный. При временном перенаправлении поисковые боты индексируют как старую, так и новые страницы. При постоянном — только новую.
Пример простого редиректа с одной страницы на другую страницу того же домена.

<IfModule mod_rewrite.c>  RewriteEngine On  RewriteRule ^(.*)sozdanie-i-nastrojka.html$ http://goldserfer.ru/new-sozdanie-i-nastrojka.html [R=301,L]  </IfModule>

Здесь, происходит простой редирект htaccess (301-й) со страницы: http://goldserfer.ru/sozdanie-i-nastrojka.html на новую страницу: http://goldserfer.ru/new-sozdanie-i-nastrojka.html

2. Доменное имя с «www» и без ведут на разные страницы. Это плохо воспринимается поисковыми ботами, а также теряется часть ссылок. С помощью 301-редиректа можно установить главное зеркало. В данном примере главным зеркалом будет страница без www:

<IfModule mod_rewrite.c>  RewriteEngine on  RewriteCond %{HTTP_HOST} ^www.goldserfer.ru  RewriteRule ^(.*)$ http://goldserfer.ru/$1 [R=301,L]  </IfModule>

3. Редирект со страниц со слешем на конце на страницы без него:

<IfModule mod_rewrite.c>  RewriteCond %{REQUEST_FILENAME} !-d  RewriteCond %{REQUEST_URI} ^(.+)/$  RewriteRule ^(.+)/$ /$1 [R=301,L]  </IfModule>

4. Защита от хотлинков. Хотлинк — это использование вашего контента (в основном тяжелого, видео и аудио) на чужих площадках. По сути это воровство интеллектуальной собственности, и с этим борются путем редиректа.

<IfModule mod_rewrite.c>  RewriteEngine On<br >  #В строке с ?yoursite.ru/ меняете данную конструкцию на УРЛ Вашего сайта<br >  RewriteCond %{HTTP_REFERER} !^http://(.+.)?yoursite.ru/ [NC]<br >  RewriteCond %{HTTP_REFERER} !^$<br >  #Меняем /images/exit.jpg на другое изображение.<br >  RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/exit.jpg [L]  </IfModule>

5. Также рекомендую сделать личные страницы ошибок, где будет краткое разъяснение причины ошибки. В таком случае вы не потеряете клиентов при возникновении ошибки, так как пользователь будет перенаправлен на специальную подготовленную страницу:

ErrorDocument 401 /401.html  ErrorDocument 403 /403.html  ErrorDocument 404 /404.html  ErrorDocument 500 /500.html

Запрет доступа к папкам htaccess

С помощью файла htaccess, можно запретить доступ извне к папкам или файлам или запретить отдельные User-Agent.
1. Запрет доступа к файлу  wp-config.php в примере:

<Files "wp-config.php">  Order Deny,Allow  Deny from all  </Files>

Данный код запретит серверу показывать wp-config.php пользователям сайта. В wordpress, обязательно нужно закрывать доступ к следующим файлам:

— wp-config.php — содержит логин и пароль.

— install.php — установочный файл (желательно его удалять после установки).

— readme.html — содержит различные данные.

2. Запрет доступа к сайту с определенных IP.

# Запрет доступа к сайту с IP 298.169.132.24  <Limit GET POST>  Order allow,deny  allow from all  Deny from 298.169.132.24  </Limit>  

Если, есть необходимость блокировать несколько IP адресов, то просто снизу добавляете еще строчку Deny from 300.120.132.26
3. Запрет доступа к сайту определенных User-Agent. User-Agent — это идентификатор программы, пользователя или скрипта, просматривающего страницу. Среди нежелательных программ, могут быть старые браузеры или скрипты, сканирующие сайт. Полный список User-Agent можно найти в интернете.

# Запрет доступа к сайту плохих User-Agent  SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]  SetEnvIfNoCase user-Agent ^Java.* [NC,OR]  SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]  SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]  SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]  SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]  SetEnvIfNoCase user-Agent ^Zeus [NC]  <Limit GET POST HEAD>  Order Allow,Deny  Allow from all  Deny from env=bad_bot  </Limit>

4. Защита административной панели WP предоставлением доступа только для одного IP.

<Files wp-login.php>  Order Deny,Allow  Deny from all  Allow from 192.168.0.100  </Files>

Где 192.168.0.100 это ваш постоянный IP адрес. Если адрес не постоянный (каждый раз при перезагрузке меняется) эту конструкцию использовать не получиться.

Скачать полный файл htaccess для wordpress

Итак, подведем итог и составим из всего перечисленного выше полный файл htaccess для wordpress. У меня он получился следующего вида:

# BEGIN WordPress  # *****************************Принудительно устанавливаем кодировку**************************  AddDefaultCharset UTF-8  # *********************************Делаем личные страницы ошибок******************************  ErrorDocument 401 /401.html  ErrorDocument 403 /403.html  ErrorDocument 404 /404.html  ErrorDocument 500 /500.html  # *******************************301-е редиректы с дублей страниц********************************  <IfModule mod_rewrite.c>  RewriteEngine On  RewriteBase /  RewriteCond %{QUERY_STRING} ^replytocom= [NC]  RewriteRule (.*) $1? [R=301,L]  RewriteRule (.+)/feed /$1 [R=301,L]  RewriteRule (.+)/comment-page /$1 [R=301,L]  RewriteRule (.+)/trackback /$1 [R=301,L]  RewriteRule (.+)/comments /$1 [R=301,L]  RewriteRule (.+)/attachment /$1 [R=301,L]  RewriteCond %{QUERY_STRING} ^attachment_id= [NC]  RewriteRule (.*) $1? [R=301,L]  RewriteRule ^index.php$ - [L]  RewriteCond %{REQUEST_FILENAME} !-f  RewriteCond %{REQUEST_FILENAME} !-d  RewriteRule . /index.php [L]  </IfModule>  # ******************************Включаем кэш в браузерах посетителей***************************  <ifModule mod_headers.c>  # Все html и htm файлы будут храниться в кэше браузера один день  <FilesMatch ".(html|htm)$">  Header set Cache-Control "max-age=43200"  </FilesMatch>  # Все css, javascript и текстовые файлы будут храниться в кэше браузера одну неделю  <FilesMatch ".(js|css|txt)$">  Header set Cache-Control "max-age=604800"  </FilesMatch>  # Все флэш файлы и изображения будут храниться в кэше браузера один месяц  <FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$">  Header set Cache-Control "max-age=2592000"  </FilesMatch>  # Отключаем кеширование php и других служебных файлов  <FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">  Header unset Cache-Control  </FilesMatch>  </IfModule>  # *****************************************Включаем 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>  # ***********************Перенаправление с зеркала с www на без www**************************  <IfModule mod_rewrite.c>  RewriteEngine on  RewriteCond %{HTTP_HOST} ^www.goldserfer.ru  RewriteRule ^(.*)$ http://goldserfer.ru/$1 [R=301,L]  </IfModule>  # **********************Перенаправление с rss WordPress на feedburner***************************  <IfModule mod_rewrite.c>  RewriteEngine on  RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]  RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]  RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/goldserfer/xhzw[R=302,NC,L]  </IfModule>  # *************************Запрет доступа к сайту плохих User-Agent******************************  SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]  SetEnvIfNoCase user-Agent ^Java.* [NC,OR]  SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]  SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]  SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]  SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]  SetEnvIfNoCase user-Agent ^Zeus [NC]  <Limit GET POST HEAD>  Order Allow,Deny  Allow from all  Deny from env=bad_bot  </Limit>  #******************************Запрет доступа к файлу wp-config.php*****************************  <Files wp-config.php>  order allow,deny  deny from all  </Files>  #**************************Запрет доступа к файлу wp-config.php.bak*****************************  <Files wp-config.php.bak>  order allow,deny  deny from all  </Files>  #*******************************Запрет доступа к файлу install.php********************************  <Files install.php>  order allow,deny  deny from all  </Files>  #*****************************Запрет доступа к файлу readme.html************************************  <Files readme.html>  order allow,deny  deny from all  </Files>  #****************************************Запрет доступа*********************************************  <Files .htaccess>  order allow,deny  deny from all  </Files>  # ***************************Запрет доступа к сайту с IP 52.27.84.25********************************  <Limit GET POST>  Order allow,deny  allow from all  Deny from 52.27.84.25  </Limit>

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

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

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

goldserfer.ru


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector