12 полезных трюков в .htaccess
Советы и рекомендацииФайл .htaccess — невероятно полезный файл, функционал которого имеет массу возможностей. Как защитить контент , как сделать редирект с одной страницы или домена на другой и как сделать кеширование страницы.
Ограничение доступа к контенту.
Если вам не нравится, что ваши картинки используется другими сайтами.
Options +FollowSymlinks
RewriteEngine On
RewriteCond % !^$
RewriteCond % !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://site.com/images/error.jpg[nc]
Редирект 301.
Чтобы перенаправить посетителя с одной страницы (домена) без ущерба для поисковых роботов.
Redirect 301 /page.html http://www.site.com/folder/page.html
Свои страницы с ошибками.
К примеру если надо перенаправить посетителя попавшего на несуществующую страницу.
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
Защита файлов.
Например защитить ваш файл с настройками от просмотра, вдруг php упадет и файл откроется как .txt
<Files config.php>
order allow,deny
deny from all
</Files>
Перенос на новый домен.
RewriteEngine On
RewriteRule ^(.*)$ http://www.site.com/ [R=301,L]
Кеширование.
Код кеширует посещённые страницы, снижая время загрузки. 86400 — количество секунд, меняйте на своё усмотрение.
FileETag MTime Size
ExpiresActive on
ExpiresDefault "access plus 86400 seconds"
GZip сжатие.
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
Работает только на Apache
Запрет просмотра папок.
Options All -Indexes
Если вместо - поставить + будет обратное действие.
Удалить расширение файла из URL.
Удаляем расширение .html с конца адреса страницы.
RewriteRule ^(([^/]+/)*[^.]+)$ /.html [L]
Заменить расширение файла в УРЛ.
html на php
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.php$ $1.html [L]
NC — no case — не различать в урлах прописные и строчные буквы.
L — last — после этой директивы дальнейший анализ директив RewriteRule останавливается и прочие директивы не исполняются
Делаем ЧПУ адрес из обычного.
Например, из catalog.php?name=samsung&id=7 на catalog/samsung/7.html
RewriteEngine on
RewriteRule ^catalog/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ catalog.php?name=$1&id=$2
Убрать www из домена.
RewriteEngine on
Options +FollowSymLinks
RewriteCond % ^www\.site\.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
Комментарии
Субербан
23.03.2013 12:59:01
23.03.2013 12:59:01
спасибо
ы
29.11.2016 17:25:40
29.11.2016 17:25:40
Круто!!!
1212
10.02.2017 15:13:16
10.02.2017 15:13:16
ке5ее