32 htaccess кода който трябва да знаем.

nasko_f

New Member
Здравейте, пускам тази тема защото съм посъбрал колекция от важни htaccess кодове, който са доста полезни, и реших да ги споделя с вас. От различни места ги събирах в текстов файл, и сега нямаше какво да правя и ще преведа и обесня колкото мога, кой за какво служи. Приятно четене.


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]

На domeinname.com слагате вашият домейн


2. Блокиране на всякакви заявки, към сайта.

С този код се блокират всякакъв вид заявки към сървара, който могат да са опасни, или да натоварват излишно, хост машината.

#Block bad bots
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. Пренасочване на всеки, с изключение на избрани IP адреси.

Ако по някаква причина искате да имат достъп до сайта само определени IP адреси, ето кода:


ErrorDocument 403 http://www.domainname.com
Order deny,allow
Deny from all
Allow from 124.34.48.165
Allow from 102.54.68.123

На http://www.domainname.com и Allow from 124.34.48.165 знаете какво се прави.

4. SEO Friendly 301 Редирект

Това мисля че почти всеки го знае, но все пак. Ако сте сменили домейна си и искате да не получите наказание от гугъл, или сте сменили адреса на някоя страница която е индексирана, това е кода:

Redirect 301 /d/file.html http://www.domainname.com/r/file.html

5. Промяна на error страница както вие искате.

Това е ако ви е омръзнало да виждате една и съшта грешка error 404 и тн, с този код можете да промените error на каквото искате вие да пише.

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

6. IP бан лист.

На deny from просто поставете ip адресите който не желаете да имат достъп до сайта.

allow from all
deny from 145.186.14.122
deny from 124.15

7. Дефаут емайл адрес за сървъра.

Когато някой получи грешка в сървъра ще се показва емайла който сте задали за връзка.

ServerSignature EMail
SetEnv SERVER_ADMIN [email protected]

На [email protected] слагате вашият емайл.

8. Без питане дали да свали.

Обикновенно когато сваляте нещо компютъра ви пита дали да отвори файла, или да го запамети. С този код свалянето ще започне директно.

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

Накрая пишете типовете файлове който искате да се свалят така, например .exe .rar и тн.

9. Защита на конкретен файл

Ако искате никои да няма достъп до определен файл, например config.php

#Protect the config.php File
<files config.php="">
order allow,deny
deny from all
</files>

10. Компресиране на файлове с mod_deflate

Компресиране на файлове с Gzip, с използването на mod_deflate. Този код се поставя най отгоре във вашият .htaccess файл(Можете да добавяте и .jpg|.gif|.png|.tiff|.ico mod_deflate ):
<ifmodule mod_deflate.c="">
<filesmatch ".(js|css)$"="">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>

11. Add Expires Headers

The following code shows you how to add an expiration date on the headers.
<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$"="">
Header set Expires "Wed, 21 May 2010 20:00:00 GMT"
</filesmatch>

Този код незнам дали ще ви послужи за нещо, даже се затруднявам с превода.

12. Настройване на начална страница по ваш избор.

Ако искате при отваряне на домейна ви да се отваря определена страница, това е кода. Като на about.html слагате която вие искате, това може да е доста полезно на някой.

DirectoryIndex about.html

13. Защита на папки и файлове с парола.


#password-protect a file
<files secure.php="">
AuthType Basic
AuthName "Prompt"
AuthUserFile /home/path/.htpasswd
Require valid-user
</files>

#password-protect a directory
resides
AuthType basic
AuthName "Zashtitenata papka s parola"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

14. Пренасочване на стар домейн към нов.

Ако сте сменили домейна си с друг, този код пренасочва към новия.

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

15. Force Caching

С този код съдържанието на сайта ви се зарежда по бързо, за потребители който вече са влизали в сайта ви. 86400 секунди се равняват на един ден.

FileETag MTime Size
ExpiresActive on
ExpiresDefault "access plus 86400 seconds"

16. Компресиране с 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

17. Премахване на категория от URL.

Ако искате да превърнете адреса си от: "http://yourdomain.com/category/name" на -> "http://yourdomain.com/name", добавете този код най отдолу във вашият .htaccess. Като category/ в htaccess файла го променяте така както се казва категорията която искате да промените. Не премахвайте ^

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


18. Отказване на достъп, по директорийте.

С този код потребителите няма да могат да се ровят в директорийте като например в папката с плъгини на wordpress. Просто повишава защитата.

Options All -Indexes

19. Пренасочване на WordPress Feeds към FeedBurner

#Redirect wordpress content feeds to 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 [R=302,NC,L]
</ifmodule>

20. Отказване на коментари за wordpress.

С този код позволявате на потребители който са дошли например от гугъл само те да коментират, ако са дошли от друго място няма да могат. Разбирасе гугъл е само пример, трябва вие да изберете на мястото на yourblog.com

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}/$ [R=301,L]


21. Премахване на разширение от URL адрес.

Кода премахва на края на адресите например .php или .html полезно е за сеото.

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]


22. Премахване на www от URL

Превръщане на адреса от: www.example.com на example.com. на www\.domain\.com го правите така www\.vashiq domein\.com или нет или какъвто е. И отдолу пак въведете домейна ви.

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

23. Добавяне на наклонена черта в URL.



#trailing slash enforcement
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]


24. Лимит за качване на файл.

Сложете лимит за максимална големина на файл с този код:

LimitRequestBody 10240000


25. Блокиране на трафик от определен сайт.

Гугъл е само пример дане го оставите. Просто сложете адреса от който не искате да идват потребители.

# Block reffered traffic
RewriteEngine on
RewriteCond %{HTTP_REFERER} google\.com [NC]
RewriteRule .* – [F]


26. Пренасочване на всеки към избрана от вас страница, само без определено IP.


ErrorDocument 403 http://www.yahoo.com/
Order deny,allow
Deny from all
Allow from 208.113.134.190


27. Спиране на достъпа до сайта.

Този код е за временно спиране на сайта, ако се прави профилактика, или тепърва го създавате.

AuthName "Skoro"
AuthUserFile /home/sitename.com/.htpasswd
AuthType basic
Require valid-user
Order deny,allow
Deny from all
Allow from 248.183.134.190
Satisfy Any


28. Добавяне на език и енкодинг по подразбиране.

AddDefaultCharset UTF-8
DefaultLanguage en-US


29. Забрани изпълнението на скриптове.

Този код е за по голяма сигурност.

Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi


30. Забрани заявки.

Забранява заявката към сървъра от "хакерчета".

RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|OPTIONS|POST|PUT)
RewriteRule .* - [F]


31. Защита на php.cgi

<FilesMatch "^php5?\.(ini|cgi)$">
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</FilesMatch>


32. Забраняване на определено IP да ползва вход в сайта.

SecFilterSelective REMOTE_ADDR "208\.113\.183\.103" "nolog,noauditlog,pass"

За позволяване на определени IP само да се логват:

SecFilterSelective REMOTE_ADDR "!^208\.113\.183\.103" "nolog,noauditlog,pass"
SecFilterSelective REMOTE_ADDR "208\.113\.183\.103" "log,auditlog,pass"
 
От: 32 htaccess кода който трябва да знаем.

Благодаря ти за споделената информация. :)
Това е един наистина полезен списък, който буукмаркнах в колекцията си.
 
Уникално полезно, даже всеки трябва да си е букмаркеркне. Аз вече го направих, че тругно бих ги запомнил всичките 32 htaccess кода. А опрделено всичките са полезни и приложими. За момента ми се е налагало да използвам само № 3,4,5,14,22,23. Имаш репче и от мен. :)
 
От: 32 htaccess кода който трябва да знаем.

Супер! Благодаря много! Ти ли си автора на темата? Може ли да ги публикувам в блога си? (естествено ще дам връзка към тази тема) Мега полезното. Сега ще си ги подбера и ще ги сложа на моя .htaccess :).
EDIT: Това за WP коментарите - има опция, с която можеш да си ги махнеш. Махаш отметката като публикуваш нещо (пост, страница) и това е :). Ама първо трябва да цъкнеш на менюто с разширените опции. Сега нямам администраторски панел да обясня с точност, но ако някой е заинтересован да пише ЛС :).
 
От: 32 htaccess кода който трябва да знаем.

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]

На domeinname.com слагате вашият домейн

Извинявам се ако въпроса ми е глупав, но този код ще повлияе ли на индексирането от google. По-скоро ще се визуализират ли снимките от сайта ми в google images ?
 
От: 32 htaccess кода който трябва да знаем.

Извинявам се ако въпроса ми е глупав, но този код ще повлияе ли на индексирането от google. По-скоро ще се визуализират ли снимките от сайта ми в google images ?

Това не мога да ти кажа, засега не ми се е налагало да го ползвам.
Devastion@ Кодовете не помня от кой сайтове съм ги събирал, имам ги в текстов файл но бяха на английски, и само съм обяснил кой за какво е. И естествено че може да ги блогнеш, нали за това съм ги пуснал понеже са полезни.
 
От: 32 htaccess кода който трябва да знаем.

Благодаря за полезната информация!:)
 
От: 32 htaccess кода който трябва да знаем.

Леко уточнение. Това:

Код:
8. Без питане дали да свали.

Обикновенно когато сваляте нещо компютъра ви пита дали да отвори файла, или да го запамети. С този код свалянето ще започне директно.

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

Накрая пишете типовете файлове който искате да се свалят така, например .exe .rar и тн.

Според мен зависи и от настройката на браузъра. Ако му зададеш винаги да те пита... все тая.
Ти тествал ли си го?

Иначе другите супер, евала полезен пост :).
 
От: От: 32 htaccess кода който трябва да знаем.

Леко уточнение. Това:

Код:
8. Без питане дали да свали.

Обикновенно когато сваляте нещо компютъра ви пита дали да отвори файла, или да го запамети. С този код свалянето ще започне директно.

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

Накрая пишете типовете файлове който искате да се свалят така, например .exe .rar и тн.

Според мен зависи и от настройката на браузъра. Ако му зададеш винаги да те пита... все тая.
Ти тествал ли си го?

Иначе другите супер, евала полезен пост :).

Не съм го тествал, не помня и за какво съм си го записал. Явно съм го сметнал за полезно. Но обяснението на английски е че директо започва сваляне, без да пита къде да запамети, ама нз. Мисля че съм уцелвал такива сайтове но само на гугъл хром не пита.
 
От: От: 32 htaccess кода който трябва да знаем.

Супер! Благодаря много! Ти ли си автора на темата? Може ли да ги публикувам в блога си? (естествено ще дам връзка към тази тема) Мега полезното. Сега ще си ги подбера и ще ги сложа на моя .htaccess :).
EDIT: Това за WP коментарите - има опция, с която можеш да си ги махнеш. Махаш отметката като публикуваш нещо (пост, страница) и това е :). Ама първо трябва да цъкнеш на менюто с разширените опции. Сега нямам администраторски панел да обясня с точност, но ако някой е заинтересован да пише ЛС :).

А това за wordpress не е да забрани коментарите. А да забрани коментари на потребители например ако не са дошли от гугъл. А другото е да забраниш на потребители коментарите който пък например идват от гугъл, но за други ще е позволено.
 
От: 32 htaccess кода който трябва да знаем.

Извинявам се ако въпроса ми е глупав, но този код ще повлияе ли на индексирането от google. По-скоро ще се визуализират ли снимките от сайта ми в google images ?

Да, няма да имаш проблеми. Поне така мисля на базата на моя опит. Все пак си пишеш статиите и си слагаш снимки в твоя си сайт, а Гугъл като търсачка показва при съответно търсене снимките от твоя сайт.
Преди и аз имах такива случаи - търся снимка по някоя тема, харесам си нещо и го слагам в сайта си. Обаче снимката въобще не се визуализира или даже може да излезе нещо друго. В този случай може да сложите снимка която да се показва вместо копираната ваша снимка от друг сайт, може да импровизирате, като примерно среден пръст или просто надпис: "Моля, не крадете снимки от този сайт".
 
От: 32 htaccess кода който трябва да знаем.

Точно това ми е въпроса . Дали в Google Image ще излиза снимката или ще излиза заместващата снимка пример "Не крадете снимки ..."
 
От: 32 htaccess кода който трябва да знаем.

Точно това ми е въпроса . Дали в Google Image ще излиза снимката или ще излиза заместващата снимка пример "Не крадете снимки ..."

Мисля, че няма да излиза заместващата снимка. Поне при мен никога не е излизала заместващата снимка. Винаги си е излизала снимката на сайта, вече когато сложа харесаната от мен снимка в моя сайт, тогава се визуализира въпросната, заместваща снимка.
 
От: 32 htaccess кода който трябва да знаем.

Точно това ми е въпроса . Дали в Google Image ще излиза снимката или ще излиза заместващата снимка пример "Не крадете снимки ..."

Попринцип гугъл кешира това което се вижда в сайта ти, такаче и аз мисля че няма да има проблем
 
От: 32 htaccess кода който трябва да знаем.

Благодаря ви. Ще го пробвам.
 
От: 32 htaccess кода който трябва да знаем.

Да допълня с още някой който найстина са полезни.

Прави всички файлове да завършват например на php без значение от разширението и.

#Prevrushta image.gif blqblq.html i tn. v .php
ForceType application/x-httpd-php


Блокира достъпа до файлове през определени часове от деня.

# ako chasut e 16 (4 PM) fajlovete shte sa blokirani
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]

Редирект към началната страница например, ако някой се опитва да открие уязвимост в сайта. Например като въвежда в адреса blog/search.php?hq&3' Като на blog поставяте вашата директория. Но внимавайте с този код може да създава проблеми, слагайте го в директорий където няма подобни линкове.

RedirectMatch 301 /blog(.*) http://www.askapache.com/$1


Прейменуване на домейна както вие си искате. Ако домейна вие 1.ком а сте го прейменували на 2.ком когато въведете 1.ком ще ви показва този който вие сте си избрали да се вижда. Нужно е обаче да имате папка в самата htdocs директория на хоста и да се казва например 2.ком и там да бъде инсталиран сайта. а htaccess файла трябва да не е в тази папка а в htdocs (в началната папка). Това не съм го пробвал!!! Но ми се стори интересно.


RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain_name\.?tld [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain_name\.?tld [NC]
RewriteCond %{REQUEST_URI} !/papka/
RewriteRule ^(.*)$ papka/$1 [L]


RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond s%{HTTPS} ^((s)on|s.*)$ [NC]
RewriteRule ^/*(.+/)?([^.]*[^/])$ http%2://%{HTTP_HOST}/$1$2/ [L,R=301]
RewriteCond %{HTTP_HOST} ^domain_name\.?tld [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain_name\.?tld [NC]
RewriteCond %{REQUEST_URI} !/papka/
RewriteRule ^(.*)$ papka/$1 [L]

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([^\.]+[^/])$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?domain_name\.tld$
RewriteCond %{REQUEST_URI} !^/papka/
RewriteRule ^(.*)$ papka/$1 [L]

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} domain_name.tld
RewriteCond %{REQUEST_URI} !papka/htdocs/
RewriteRule ^(.*)$ domain_name/htdocs/$1 [L]
 
От: 32 htaccess кода който трябва да знаем.

11. Add Expires Headers

The following code shows you how to add an expiration date on the headers.
<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$"="">
Header set Expires "Wed, 21 May 2010 20:00:00 GMT"
</filesmatch>

Този код незнам дали ще ви послужи за нещо, даже се затруднявам с превода.

Това се използва за кеширане на статичните ресурси и за такива, които се променят рядко, с цел да не се зареждат при всяко отваряне на страницата. В случая не е правилно написано, защото датата, която е зададена е невалидна, може да се зададат по следния начин, за всеки вид файл по отделно:

Код:
#########################################
#Expire headers
#########################################
ExpiresActive On
ExpiresDefault A0
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/ico A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000
#########################################

Горе A0 ще рече, че по принцип ресурсите, които не са със специално оказан expire header не се кешират.

A2592000 = Access + 60 секунди * 60 минути * 24 часа * 30 дни

Може да си сложите само картинките или пък само CSS, зависи от вас.

Повече информация:
Код:
https://developers.google.com/speed/docs/best-practices/caching#LeverageBrowserCaching

http://www.seomoz.org/ugc/expires-headers-for-seo-why-you-should-think-twice-before-using-them

Поздрави,
Борисов
 

Горе