Полезные .htaccess правила

Иногда, при создании/редактировании .htaccess’a возникает необходимость изменить/добавить какое-либо правило. Но, не всегда помнишь точный синтаксис. И для того, чтобы не спрашивать каждый раз гугл, я собрал небольшую подборку чрезвычайно полезных и часто используемых правил и решений.

Убрать www из урла

Для удобства или для SEO, вы можете захотеть убрать (или использовать) www в
адресе вашего сайта. Приведенный код убирает www из урла сайта и перенаправляет на адрес вида http://mysite.ru.

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


Автоматически устанавливать файлам кодировку utf-8

Один из вариантов избежать проблем с кодировкой — это создать .htaccess с таким содержанием:

<FilesMatch "\.(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>


Убрать расширение файла

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

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

# Вместь html может быть любое другое расширение: php, htm, asp


Запись php ошибок в лог-файл

Интересный способ записи ошибок выполнения скрипта. Просто создайте файл php_error.log у вас на сервере и укажите до него путь в последней строке кода.

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log


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

Перенаправляем посетителей со своего старого сайта на новый, используя 301 редирект.

RewriteEngine On
RewriteRule ^(.*)$ http://www.newsite.ru/$1 [R=301,L]


Изменяем некоторые системные значения

Данный трюк может срабатывать не всегда.

#Увеличиваем максимальный размер загружаемого файла
php_value upload_max_filesize 100M
#Увеличиваем максимальный размер файла передаваемого пост-запросом
php_value post_max_size 100M
#Увеличиваем время выполнения скрипта
php_value max_execution_time 700


Удалить подраздел/категорию из урла

Для того, чтобы изменить урл вида: http://site.ru/category/seo на http://site.ru/seo, дописываем в .htaccess следующий код.

RewriteRule ^category/(.+)$ http://www.yourdomain.com/$1 [R=301,L]


Свои страницы с ошибками (404, 403, 500, etc.)

Не нравятся дефолтные страницы с ошибками? Просто создайте для каждой ошибки свой html-файл и пропишите в .htaccess следующий код.

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authrequest.html
ErrorDocument 403 /errors/forbidden.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/servererror.html


Запрет выполнения php-скриптов

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

php_flag engine off


Защита от хотлинкинга

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

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
Теги:
.htaccess
Добавлено: 01 Марта 2015 10:34:30 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...