1 декабря 2011 г.

Примеры с .htaccess

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

1. Редирект со всех страниц хоста www.host.com на соответствующие страницы host.com с выдачей кода "301 Moved Permanently "

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

2. Обработка ошибки 404 на страницу  page404.html
ErrorDocument 404 /path/page404.html

3. Кэширование статического контента (картинки, javascript, css), например, на 2 недели значительно разгрузит наш сервер, т.к. браузер будет использовать файлы со своего кэша. Сервер будет выдавать в HTTP заголовках что-то типа "Expires: Thu, 01 Dec 2012 09:46:11 GMT"

ExpiresActive on
ExpiresByType text/css "access plus 2 weeks"
ExpiresByType application/x-javascript "access plus 2 weeks"
ExpiresByType image/vnd.microsoft.icon "access plus 4 weeks"
ExpiresByType image/gif "access plus 2 weeks"


4. Кодировка по умолчанию для страниц, отдаваемых сервером

AddDefaultCharset windows-1251 или  AddDefaultCharset utf-8

5. Включение сжатия страниц gzip через библиотеку zlib

php_flag zlib.output_compression On
php_value zlib.output_compression_level 5



6. Запрет показа картинок png нашего сайта с другого сайта (хотлинкинг). Сервер проверит по полю реферер, если не наш сайт - отдать "403 Forbidden". Работает не в 100% случаев, т.к. у юзера может быть отключена информация о ссылающейся странице.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?ourhost\.com/.*$ [NC]
RewriteRule .(png)$ - [F]



7. Преобразование URL. Используя регулярные выражения, адрес вида http://site.com/folder/123/45/ преобразуется в вызов скрипта   http://site.com/s.php?a=123&b=45

RewriteRule ^folder/([0-9]+)/([0-9]*)/?$ s.php?a=$1&b=$2 [L]

[0-9] числа, [a-z] или [A-Z] - буквы


Комментариев нет:

Отправить комментарий