Уважаемые читатели сайта Ajaxs.ru

Очень рад что вы зашли на мой сайт. Надеюсь, Вы сможете найти здесь для себя полезную информацию. Зарегистрировавшись на сайте вы получаете ряд преимуществ:
1. При комментировании Вам не нужно вводить имя и капчу с картинки
2. Вы можете получать уведомления на Email к интерисующим вас урокам
3. Вы можете редактировать свои комментарии

Вход на сайт


Забыли пароль



Восстановление пароля


Войти на сайт

Зарегистрироваться

Главная / Уроки по PHP / Просмотр урока

     

Создание сайтов


Вам нужен небольшой сайт или просто хотите доработать уже существующий? | Подробнее

Манипуляции с файлом .htaccess

.htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать довольно большое количество дополнительных параметров, при этом не изменения главного конфигурационного файла, который на хостингах, как правило, не доступен для редактирования. Самый распространенным, наверное, является mod_rewrite, необходимый для создания человекоподобных url (ЧПУ).

Страницы ошибок

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

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

Запрет/доступ к сайту с определенных ip

Допустим что на сайте у вас есть какой-то раздел (админка), которою желательно бы скрыть от посторонних и у вас статический ip, то можно воспользоваться такой конструкцией:

Разрешить доступ с определенного ip:

order allow deny
deny from all
allow from <ваш ip>

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

Запретить доступ с определенного ip:

order allow deny
deny from all
deny from <ваш ip>

Работа с кодировками

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

AddDefaultCharset utf-8

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

CharsetSourceEnc windows-1251

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

Запретить доступа к файлам с несколькими типа расширений, как правило, это файлы конфигураций *.conf, *.inc, *.cfg

<Files ~ "\.(inc|conf|cfg)$">
  deny from all
</Files>

Редиректы

Чтобы переадресовать только страницу, сохранив PR старой страницы (страница перемещена постояно):

Redirect 301 /old.html http://www.mysite.com/new.html

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

Redirect 302 /old.html http://www.mysite.com/new.html

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

RedirectMatch /(.*)/(.*)/index.html$ http://mysite.ru/script.php?p=$1&d=$2

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

() используются для выделения групп символов. В дальнейшем к ним можно обращаться по номеру.
^ обозначает начало строки.
$ обозначает конец строки.
. обозначает любой символ.
| обозначает альтернативу (или). Например, выражения "auto|moto" означают "auto или moto".
? ставится после символа (группы), который может как присутствовать, так и отсутствовать.
* ставится после символа (группы), который может отсутствовать или присутствовать неограниченное число раз подряд.
+ действует аналогично символу * с той лишь разницей, что предшествующий ему символ обязательно должен присутствовать хотя бы один раз.
[] используются для перечисления допустимых символов. Например, [a-z0-9]
Квадратные скобки с галочкой [^] используются для перечисления недоступных символов.
\ ставится перед спецсимволами, если они нужны в своем первозданном виде.
# комментирование строки.

Индексные страницы

Когда пользователь заходит на сайт, например, http://ajaxs.ru принято, что открывается индексный файл index.* при его отсутствии - либо содержимое каталога, либо ошибку 403 (Forbidden) если опция отключена - запрещен просмотр директорий. За это отвечает директива DirectoryIndex:

DirectoryIndex index.html index.shtml index.pl index.cgi index.php

Изменяя порядок файлов, добиваемся нужного эффекта. В этом примере сначала будет искаться index.html, если ее нет, то index.shtml и т.д.

Но можно явно указать какой именно файл отображать при заходе на сайт

DirectoryIndex contact.php product.php

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

# Запрет выдачи листинга пустого каталога
Options –Indexes

А чтобы выдавал листинг, нужно написать:

Options Indexes

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

IndexIgnore *.php* *.pl

Выдает листинг каталога, т.е. его содержание со всем содержанием, за исключением файлов-скриптов PHP и Perl.

Убираем WWW

Иногда люди могут набирать адрес вашего сайта с www или без www результат они увидят один, но для Яндекса и Google http://ajaxs.ru и http://www.ajaxs.ru - разные сайты. И у вас, как следствие будет заниженный ТИЦ и PR. Это решается следующим кодом.

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

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^www.ajaxs.ru$
RewriteRule (.*) http://ajaxs.ru/$1 [R=301,L]

Теперь если пользователь наберет сайт с www.ajaxs.ru, то произойдет переадресация на ajaxs.ru

Если вы наоборот хотите, чтобы ваш адрес был всегда с www, то пропишите:

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^ajaxs.ru $
RewriteRule ^(.*)$ http://www.ajaxs.ru/$1 [R=301,L]

Естественно, меняем адрес сайта на свои)

Дополнительные возможности

Бывает что при работе некоторых скриптов, требуется больше времени на выполнение чем 30 секунд по умолчанию. Возможно пользователи, которые пробовали установить Drupal, сталкивались с подобной бедой. Чтобы увеличить время выполнения скриптов прописываем следующее (время указывается в секундах):

php_value max_execution_time 60

Увеличение объема памяти для выполнения скрипта:

php_value memory_limit 32M

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

php_value upload_max_filesize 20M
php_value post_max_size 20M

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

Автор: Евгений Бочкарев Урок добавлен: 17 Февраля 2013 в 18:24 Просмотров: 7044

Условия копирования материалов сайта

Все комментарии
#-6 Till 20-07-2014 в 14:25
Огромное спасибо создателям этого сайта!!! Здесь есть много полезного чем некоторых больших(по контенту) сайтах.
#-5 Вадим 12-11-2014 в 18:32
Это очень полезная информация!
#-4 Вадим 12-11-2014 в 18:33
Но непонятного всё равно много
Добавить новый комментарий

Автор:

Текст сообщения:

Если в комментарии присутствует код, пожалуйста вставляете его между тегами [code][/code]

cap

Код с картинки:


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

41001346159934
R314489888859
Уроки
Для начинающих
Интересное
Файлы
Полезное
Опрос

Много ли среди программистов девушек?

Последние комментарии
Ссылки