05.05.2014
Полезные функции в файле .htaccess
.htaccess (с точкой в начале имени) — это файл-конфигуратор Apache-серверов, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу (apache/conf/httpd.conf). Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок. .htaccess представляет собой обычный текстовый документ, расширение которого htaccess. Данный файл обычно находится в корне сайта, однако Вы можете создавать и дополнительные .htaccess-файлы для различных директорий Вашего сайта.
Если вы вдруг не видите файл .htaccess, возможно у вас не отображаются скрытые файлы.
Отключаем отображение листинга файлов
Если вы хотите отключить листинг файлов в каталогах, то вам понадобится следующий код.
Options All -Indexes
Страница Ошибки
При возникновении ошибок, перенаправляем пользователя на error.html.
errorDocument 400 http://www.youwebsite.com/error.html errorDocument 401 http://www.youwebsite.com/error.html errorDocument 404 http://www.youwebsite.com/error.html errorDocument 500 http://www.youwebsite.com/error.html
Перенаправление
Для дальнейших примеров, вам нужно активировать опцию RewriteEngine On в Apache Server-а.
RewriteEngine on
Перенаправление на домен
.htacces код для перенаправления с yourwebsite.com на www.yourwebsite.com
RewriteCond %{HTTP_HOST} ^yourwebsite.com RewriteRule (.*) http://www.yourwebsite.com/$1 [R=301,L]
Перенаправление на поддомен
Файлы для поддомена будут храниться в отдельном каталоге. Допустим http://www.yourwebsite.com связан с папкой website_folder folder.
RewriteCond %{HTTP_HOST} ^www\.yourwebsite\.com$ RewriteCond %{REQUEST_URI} !^/website_folder/ RewriteRule (.*) /website_folder/$1
Адрес http://subdomain.yourwebsite.com будет связан с каталогом subdomain_folder.
RewriteCond %{HTTP_HOST} ^subdomain\.yourwebsite\.com$ RewriteCond %{REQUEST_URI} !^/subdomain_folder/ RewriteRule (.*) /subdomain_folder/$1
Перенаправление для старого домена
К примеру, нам необходимо сделать редирект с старого домена на новый; с (abc.com) на (xyz.com).
RewriteCond %{HTTP_HOST} ^abc.com RewriteRule (.*) http://www.xyz.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www\.abc\.com RewriteRule (.*) http://www.abc.com/$1 [R=301,L]
ЧПУ (человеко понятные адреса)
URL Профиля
Параметр profile будет состоять из символов [a-zA-Z0-9_-].
http://labs.9lessons.info/profile.php?username=srinivas
меняем на
http://labs.9lessons.info/srinivas
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1
URL Сообщений
http://labs.9lessons.info/messages.php?message_username=srinivas
меняем на
http://labs.9lessons.info/messages/srinivas
RewriteRule ^messages/([a-zA-Z0-9_-]+)$ messages.php?message_username=$1 RewriteRule ^messages/([a-zA-Z0-9_-]+)/$ messages.php?message_username=$1
URL Друзей
http://labs.9lessons.info/friends.php?username=srinivas
меняем на
http://labs.9lessons.info/friends/srinivas
RewriteRule ^friends/([a-zA-Z0-9_-]+)$ friends.php?username=$1 RewriteRule ^friends/([a-zA-Z0-9_-]+)/$ friends.php?username=$1
URL Друзей с двумя параметрами
Первый параметр будет состоять из символов [a-zA-Z0-9_-], а второй из [0-9]
http://labs.9lessons.info/friends.php?username=srinivas&page=2
меняем на
http://labs.9lessons.info/friends/srinivas/2
RewriteRule ^friends/([a-zA-Z0-9_-]+)/([0-9]+)$ friends.php?username=$1&page=$2 RewriteRule ^friends/([a-zA-Z0-9_-]+)/([0-9]+)/$ friends.php?username=$1&page=$2
Прячем формат файла
http://www.yourwebsite.com/index.html
меняем на
http://www.yourwebsite.com/index
RewriteRule ^([^/.]+)/?$ $1.html
Источник: ruseller.com
Нам будет приятно
Поделитесь
Комментарии