Admin | Дата: Неділя, 14.02.2016, 17:35 | Повідомлення # 1 |
Майор
Група: Адміністратори
Повідомлень: 93
Статус: Offline
| Файл .htaccess очень полезный файл, который кроет в себе массу возможностей. Как защитить контент , как редиректить с одной страницы или домена на другой, как менять расширение с php на html и как кешировать страницы смотрим в продолжении. Перед началом экспериментов не забудьте сохранить копию старого файла.
1) Ограничение доступа к контенту. Если вам не нравится, что ваши картинки используется другими сайтами.
Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif
[nc]2) Ограничение доступа по user-agent Блокируем всех пользователей, которые могут причинить вред серверу.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC]<Limit GET POST HEAD> Order Allow,Deny Allow from all Deny from env=bad_bot </Limit>
3) Безопасный редирект 301 Чтобы перенаправить посетителя с одной страницы (домена) без ущерба для поисковых роботов.
Redirect 301 /d/file.html http://www.domainname.com/r/file.html
4) Своя страница с ошибками Чтобы перенаправить посетителя на самодельную 404-страницу
ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
5) Защита файлов Чтобы защитить ваши файлы от просмотра, используется следующий код:
<Files .htaccess> order allow,deny deny from all </Files>
На этом примере показано, как защитить .htaccess. При попытке просмотра посетитель попадает на страницу 403
6) Перенос на новый домен Перенаправляем пользователя на новый домен:
RewriteEngine On RewriteRule ^(.*)$ http://www.domainname.com/
[r=301,L]7) Кеширование Код кеширует посещённые страницы, снижая время загрузки. 86400 количество секунд, меняйте на своё усмотрение.
FileETag MTime Size ExpiresActive on ExpiresDefault "access plus 86400 seconds"
8) Gzip-сжатие Используйте 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
9) Убрать папку из URL Чтобы http://yoursite.com/folder/one изменить на hhttp://yoursite.com/one, добавьте строчку в ваш .htaccess.
RewriteRule ^folder/(.+)$ http://www.yourdomain.com/
10) Запрет просмотра папок Чтобы запретить просмотр папок вашего сайта , используйте код ниже. Чтобы открыть доступ, замените минус на плюс.
Options All -Indexes
11) Редирект WordPress-RSS на FeedBurner Перенаправляем RSS на FeedBurner.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/yourfeed </IfModule>
12) Защита от спам-ботов Для пользователей WordPress. При добавлении комментария сервер сравнивает заголовок Referer с «wp-comments-post.php». Если он не совпадает, комментарий не добавится.
RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$
13) Удалить расширение файла из URL Удаляем расширение .php с конца адреса страницы.
RewriteRule ^(([^/]+/)*[^.]+)$ /.php
14) Заменить расширение файла Меняем php на html RewriteEngine on RewriteBase / RewriteRule ^(.*)\.html$ $1.php NC no case не различать в урлах прописные и строчные буквы L last после этой директивы дальнейший анализ директив RewriteRule останавливается и прочие директивы не исполняются 15) Меняем адрес на более комфортный Например, product.php?id=12 на product-12.html RewriteEngine on RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1 16) Оптимизируем адрес для поисковиков Наиболее удобным для поисков будет порменять product.php?id=12 на product/ipod-nano/12.html . Данный код отображает адрес с главным ключевым словом. RewriteEngine on RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2 БОНУС 17) Как сделать редирект всех возможных вариантов набора адреса страницы на одну и ту же? Например, нам надо, чтобы страницы http://www.site.com http://site.com http://www.site.com/index.html http://site.com/index.html все директились на одну и ту же на http://www.site.com, тогда необходимо прописать: Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^site.com RewriteRule (.*) http://www.site.com/$1 RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://www.site.com/ 18) как превратить www-адрес в не-www-адрес? www.site.com превращаем в site.com RewriteEngine on Options +FollowSymLinks RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]RewriteRule ^(.*)$ http://site.com/$1 [/r]
Источники: http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/ http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html http://roshanbh.com.np/2008/02/hide-php-url-rewriting-htaccess.html
|
|
| |