htaccess файлы әсер ететін сервер параметрлерін өзгертеді. htaccess файлын қалай жасауға және дұрыс конфигурациялауға болады? Көрсетілген IP мекенжайларынан басқа барлығына кіруге тыйым салу

(11 )

File.htaccess— Apache веб-серверінің және ұқсас серверлердің параметрлерін өзгерту үшін пайдаланылатын арнайы қызмет құжаты. Қарапайым тілмен айтқанда, оны пайдалану сайттың жұмыс істеу тәсілін өзгертуге көмектеседі: қалталарға, файлдарға және басқа материалдарға кіруді конфигурациялау, сілтемелерді және қате туралы ескертулерді қайта жазу ережелерін көрсету. Бұл ретте сіз кейбір пайдаланушылар үшін тек қосымша параметрлерді конфигурациялай отырып, бүкіл сервердің жұмысын өзгертпейсіз.

Веб-сайт иесі өз жобасымен жұмыс істеп жатқанда, ол міндетті түрде .htaccess файлын пайдалану қажет болады. Оның орасан зор маңыздылығына қарамастан, көптеген веб-шеберлер үшін, әсіресе жаңадан бастағандар үшін бұл белгісіз болып қалады, өйткені оны түсіну үшін тек SEO ғана емес, сонымен қатар бағдарламалауды жақсы білу керек.

Бұл мақалада біз .htaccess не үшін қажет екенін және оны қалай конфигурациялау керектігін түсінуге көмектесеміз. Бұл өте маңызды, себебі ол өз ресурсының сенімді қауіпсіздігін қамтамасыз етуді қалайтын сайт иелері үшін икемді опцияларды ашады.

Бұл файлда сайт құрастырушылары:

  • Қарапайым қайта бағыттау директиваларын конфигурациялаңыз (қайта бағыттаулар).Бұл доменді өзгерткеннен кейін келушіні алдыңғы сайт бетінен жаңа жобаға жіберуге мүмкіндік береді.
  • www бар URL мекенжайынан www жоқ доменге қайта бағыттау. Немесе ssl сертификатын орнатқаннан кейін https.
  • Қателерді сипаттаңыз.Оларға қажетті бетпен ауыстырылған 404 қатесі кіреді.
  • Файлды кэштеу.Бұл веб-ресурстың жұмысын жылдамдату үшін жасалады.
  • CNC жасау.Бұл «адам оқитын URL мекенжайлары», яғни Интернет пайдаланушыларына түсінікті сілтемелер қалыптасады.
  • Беттердің бастапқы кодын өзгертіңіз.
  • Құпия сөздерді пайдаланып файлдар мен каталогтарға кіруді басқару.
  • Индекс файлын көрсетіңіз.
  • Арнайы IP мекенжайларынан кіруге рұқсат беріңіз және блоктаңыз.
  • Сайттағы іздеу боттарын басқарыңыз.
  • Күрделі директиваларды конфигурациялаңыз.

.htaccess бағдарламасының негізгі мақсаты - сайт пен каталогтарды белгілі бір талаптарға сәйкес теңшеу. Яғни, бұл файл арқылы SEO мамандары мен бағдарламашылар веб-сервер параметрлерін әкімші құқығынсыз да өзгерте алады. Бірақ өзгертулер тек белгілі бір сайт үшін жасалады және олар сервердің өзіне ешқандай әсер етпейді.

Сервер конфигурациялары оған арналған «кілт» және «мәні» бар директивалар (пәрмендер) арқылы ғана өзгертіледі. Серверді басқаруға мүмкіндік беретін барлық маңызды директивалар httpd.conf деп аталатын негізгі конфигурация файлында орналасқан. Мәселе мынада, қарапайым пайдаланушының оған қол жеткізу мүмкіндігі жоқ, өйткені ол бүкіл сервердің өнімділігі тәуелді болатын көптеген параметрлерді қамтиды. Сондықтан негізгі файлдағы кейбір директиваларды өзгертуге мүмкіндік беретін .htaccess өзекті болып табылады.

Көмекші файлдағы барлық түзетулер ол орналасқан бүкіл каталогқа әсер етеді. Ал бұл құжатты сайттың түбірлік қалтасына жүктеп салсаңыз, өзгерістер бүкіл ресурсқа әсер етеді.

.htaccess қайда орналасқан?

Қызметтік файлыңыздың бар-жоғын оңай тексеруге болады. Оның көптеген басқа құжаттардан ерекшелігі, оның тек сөзден тақырып түрінде кеңейтілуі бар, ал тақырыптың өзі жоқ. Иә, барлығымыз 2-3 әріптен тұратын сөзден атауы бар және нүктеден кейін кеңейтілген файлдарды көруге үйреніп қалғанбыз. Бірақ бос атаулар файлдар мен қалталарды «жасырын», ашық бастапқы кодты жасауға мүмкіндік береді. Осыдан .htaccess қарапайым қолданушыларға көрінбейтін болып қалады, сондықтан олар оны өзгерте алмайды.

Бірақ бұл файлды «жасыру» әдісінің де кемшілігі бар. Windows және Mac жүйелеріндегі стандартты FTP клиенттерінде құжат көбінесе пайдаланушыларға көрінбейтін болып қалады, сондықтан олар оны жай жоқ деп қателеседі. Сондықтан адам өзінің конфигурацияларын, қателерді өңдеу кодтарын, қалталарға кіруді жасау және т.б. енгізу үшін жаңа файлды жасайды. Көбісі htaccess файлы автоматты түрде орнатылған дискіде бос орын қалдырғаны жақсы.

Бірақ егер сіз оны таппасаңыз, хостингте орнатылған файл менеджеріне өтіп көріңіз. Ол жасырын файлдар мен каталогтарды көрсете алады. Оны public_html ішінен іздеңіз, содан кейін бағдарламада орнатылған мәтіндік редакторды пайдаланып, файлды өңдеңіз және сақтаңыз, содан кейін ол серверге өздігінен жүктеледі.

Көрсетілген жолда құжатты таппасаңыз, оны өзіңіз жасаңыз. Экранда қате пайда болуы мүмкін. Бұл бұл хост қызмет файлын жасауға тыйым салғанын білдіреді.

Арзан хостинг қызметтері көбінесе клиенттерге мұндай құжатты жасауға және өңдеуге тыйым салады. Осылайша, олар рұқсат етілген жерде өз қызметтерін қымбатырақ тарифтермен пайдалануға шақырылады.

.htaccess қалай дұрыс жасауға болады

Мұны істеу үшін сізге ең кең таралған мәтіндік редактор қажет, мысалы, кез келген компьютерде қол жетімді Блокнот:

  1. Блокнотты ашыңыз, оған ештеңе жазбаңыз.
  2. Элементті таңдаңыз «Файл»және басыңыз "Басқаша сақтау".
  3. Терезе элементке қарама-қарсы жерде пайда болады «Файл түрі»таңдаңыз « Барлықтүрлері»немесе «Барлық файлдар».
  4. Кезекте «Файл атауы»енгізіңіз . htacceжәне басыңыз «Сақтау».

Содан кейін құжаттың дұрыс жасалғанын екі рет тексеріңіз. Оны .htaccess.txt ретінде сақтағаныңызды тексеріңіз. Содан кейін файлды сервердің түбірлік қалтасына жүктеңіз және 500 қатесін көрмесеңіз, сіз бәрін дұрыс жасадыңыз.

Енді сіз веб-сайтыңызды икемді басқаруға мүмкіндік беретін файлды өңдей аласыз.

Қолдану мысалдары

.htaccess үшін ең танымал командаларды қарастырайық.

Қайта бағыттау

Бұл директивалар қызығатын жүйелілікпен қолданылады. Олар келушіні ескі URL мекенжайынан жаңа бетке қайта бағыттауға мүмкіндік береді. Бұл 301 қайта бағыттауының арқасында мүмкін. Тек файл кодын жазыңыз:

Қайта бағыттау 301 /old_URL.html http://www.your_site_name.ru/new_URL.html

Жалпы, директивалар келесідей көрсетіледі:

URL_LOCAL URL_REDIRECT қайта бағыттау

URL_ЖЕРГІЛІКТІ– бұл пайдаланушы тасымалданатын ескі мекенжай.

URL_REDIRECT– бет жылжытылатын жаңа URL мекенжайы.

Алаңда [ күй]келесі мәндерге ие болуы мүмкін:

  1. 301 – бет біржола жылжытылды.
  2. 302 – бет уақытша жылжытылды.
  3. 303 – басқа бетті қараңыз.
  4. 410 – бет жойылды.

Mod_rewrite (күрделі тасымалдау директивалары)

Бұл модуль Apache-де бар. Оның кеңейтілген мекенжайды басқаруға арналған көптеген директивалары бар. Олардың негізгілеріне мыналар жатады:

1. Негізгі айнаны көрсету

Доменді www-дан www емес URL-ге түрлендіру үшін жасалған. Ережені енгізу жеткілікті:

RewriteEngine қосулы # RewriteCond %(HTTP_HOST) қосады ^www.your_site_name\ru$ #қайта бағыттауды бастау шарттары RewriteRule ^(*)$ http://your_site_name_/$1 #түрлендіру ережесі

2. Https файлына тасымалдау

Бүгінгі таңда Google іздеу жүйесі сайт иелерін қауіпсіз қосылымды пайдалануға белсенді түрде шақырады, ол үшін кодты пайдаланып пайдаланушыларды http-ден https-ке қайта бағыттау қажет:

RewriteEngine RewriteCond %(HTTPS) !RewriteRule бойынша (.*) https://%(HTTP_HOST)%(REQUEST_URL)

3. Мекенжайдың соңына қиғаш сызықты қою

Беттің URL мекенжайының каталог атауымен аяқталуын қаламасаңыз http://name_of_your_site.ru/catalog, файлға кодты енгізіңіз:

RewriteCond %(REQUEST_URI) /+[^\.]+$ Қайта жазу ережесі ^(.+[^/])$ %(REQUEST_URI)/

Бұл пәрменді орындағаннан кейін болашақта мекенжайдан кейін қиғаш сызық автоматты түрде қосылады: http://name_of_your_site.ru/catalog/

4. Доменді тасымалдау

Сайттың атын өзгерткен кезде .htaccess ішінде көрсетуді ұмытпаңыз:

RewriteCond %(HTTP_HOST) бойынша RewriteEngine ^www\.yoursite.ru\.ru$ RewriteRule ^(.*)$ http://www.your-site.ru/$1

Сайтты Яндекс пен Google үшін оңтайландыру кезінде домен атауын өзгерту жағымсыз салдарға әкелуі мүмкін. Яндекске арналған robots.txt нұсқаулығы 301 қайта бағыттаумен қамтылған. Бірақ кодқа ереже қосу арқылы мұны болдырмауға болады:

RewriteCond %(REQUEST_FILENAME) robots.txt$ RewriteEngine RewriteRule ^([^/]+) $1 [L] RewriteCond %(HTTP_HOST) ^mysite\.ru RewriteRule ^(.*)$ http://www.my-site .ru/$1

5. Іздеу боты үшін тыйым салынған командалар

.htaccess ішінде, роботтар.txt сияқты, іздеу жүйесі роботтары үшін сайтқа кіруді блоктай аласыз:

RewriteCond %(USER_AGENT) Googlebot RewriteRule жүйесіндегі RewriteEngine .* - [F] # F – қате 403 береді – тексеріп шығуға рұқсат етілмейді

Өңдеу қатесі

Әрбір дерлік Интернет пайдаланушысы 404 табылмады қатесіне тап болды (бет табылмады немесе жойылды). Бірақ сіз естімеген көптеген басқа қателер бар.

Қызметтік файлда қате кезінде оны көрсету үшін файлды тіркеуге болады. Бірақ алдымен html кеңейтімінде бірдей файлды жасау керек және оған бұл қатенің не екенін жазу керек. Содан кейін пайдаланып жатқан қатеге байланысты encoding.htaccess файлына келесіні қосыңыз:

ErrorDocument 404 /siteerror404.html

Индекстік құжаттар

Келуші сайтқа кірген кезде index.xml индекс файлы бірден ашылады. Келесі кодты қосу арқылы индекс бетін кез келген басқасымен ауыстыруға болады:

DirectoryIndex name.xml

Немесе бірнеше осындай беттерді қосыңыз және іздеу жүйесі оларды сәйкес реттілікте табады:

DirectoryIndex index.html index.php index.pl

Кодтауды анықтау

Бұл функция мәтіннің пайдаланушы экранында дұрыс көрсетілуін қамтамасыз ету үшін қажет. Әйтпесе, кәдімгі оқылатын беттің орнына ол біртүрлі кейіпкерлерді көреді. Бүгінгі таңда келесі кодтау кеңінен қолданылады: Windows-1251 – Кириллица жәнеUTF-8 – екі байтты кодтау. Қызметтік құжатта кодтауды таңдау үшін келесі директива қолданылады:

AddDefaultCharset WINDOWS-1251

Болашақта файлдарды серверге жүктеп салған кезде ешқандай проблемалар болмауы үшін барлық жаңа файлдар ұқсас кодтауға түрленетінін көрсетіңіз:

CharsetSourceEnc WINDOWS-1251

Каталогтар үшін құпия сөздерді анықтау

Ол үшін жабылатын каталогқа жазыңыз:

AuthName "Құпия сөз қажет" #құпиясөзді сұрау хабары AuthType Basic #аутентификация түрі AuthUserFile /passwords/.psd #логин құпия сөздерін қамтитын файл аты Жарамды пайдаланушыны талап етеді # қатынасы бар пайдаланушылардың аты

Файлдар мен каталогтарға қол жеткізу

.htaccess файлын пайдалану арқылы белгілі бір файлдарға кіруге толық немесе ішінара тыйым салуға болады. Жүйелік каталогқа кіруді блоктағыңыз келеді делік. Содан кейін тиісті .htaccess ішіне жазыңыз:

Барлығынан бас тарту

Белгілі бір файлды қарауды болдырмау үшін, мысалы, test.php:

барлығынан бас тарту

Пәрмен басқаларға кіруге рұқсат бермей, белгілі бір IP үшін шолуды ашуға мүмкіндік береді:

12.345.678.90 нөмірінен бас тартуға тапсырыс беру, Барлығынан бас тартуға рұқсат беру Рұқсат ету

Қорытынды

Көріп отырғаныңыздай, .htacce қызмет файлы веб-ресурстың толық функционалдығы үшін ең маңызды құралдардың бірі болып табылады. Оның мүмкіндіктерімен танысқаннан кейін, сіз бұл файл туралы бұрын неге аз білетініңізге таңғалған шығарсыз. Бұл SEO және бағдарламашылар үшін сервердің өзіне әсер етпестен нақты сайттар үшін веб-сервер конфигурацияларына өзгертулер енгізудің тиімді құралы.

Оның арқасында интернет-жобалардың иелері іздеу жүйелері мен келушілерді доменді өзгерту туралы хабардар ете алады және оларды жаңасына ауыстыра алады, барлық немесе белгілі бір ресурс деректеріне қол жеткізуді бұғаттай алады, оларды рұқсатсыз тұлғалардың түзетуі мен жүктеп алуына жол бермейді. IP және құпия сөз арқылы белгілі бір файлдар.

Біз негізгі веб-сервер ретінде Apache httpd пайдаланамыз. Apache әлемдегі веб-серверлердің көпшілігін ұйымдастыру үшін қолданылады және өз класындағы ең танымал өнім болып табылады. Бұл серверде кең конфигурация опциялары бар, өте өнімді және веб-серверлерді іске қосу үшін барлық белгілі протоколдарды қолдайды. Perl және PHP сияқты танымал бағдарламалау тілдерінің нұсқалары арнайы Apache үшін жасалған және бұл сервер кең таралған ДҚБЖ-мен (мысалы, MySQL) оңай біріктіріледі.

Жобаның негізгі веб-сайты httpd.apache.org мекенжайында орналасқан және 1.3.xx нұсқасына арналған негізгі құжаттама httpd.apache.org/docs/ сайтында қолжетімді.

Біз пайдаланушыларға . Осылайша сіз жаппай хостинг орталарында веб-сервер конфигурациясының көптеген мәселелерін шеше аласыз.

Индекс файлы

Индекс файлы немесе индекс файлы - пайдаланушы белгілі бір файл емес, веб арқылы каталогқа кірген кезде әдепкі бойынша ашылатын файл. Мысалы, сіздің келушіңіз мекенжайды сұрайды http://доменіңіз/бағасы/, мұндағы баға – каталогтың атауы. Индекс файлы – каталогқа кіру кезінде ондағы нақты файлдың атын көрсетпей пайдаланушыға көрсетілетін файл.

Әдепкі индекс файлдары: index.html, index.htm, index.php, index.php3, index.phtml, index.shtml, default.htm немесе default.html. Алдымен басқа файлдың ашылуын қаласаңыз, ағымдағы мәндерді қайта анықтауыңыз керек. Мұны қалай жасау керектігін оқыңыз.

.htaccess файлының мақсаты мен қолданылуы

Файл .htaccess(файл атауындағы бірінші таңба нүкте екенін ескеріңіз) соңғы хостинг пайдаланушысынан Apache веб-серверін басқару үшін пайдаланылады. Пайдаланушы жасаған параметрлерге сәйкес әрекеттерді орындай отырып, веб-сервер қабылдайтын және өңдейтін директиваларды осы файлға орналастырасыз.

.htaccess файлын веб-сервердің түбірлік каталогында (тікелей каталогта) орналастыруға болады. www). Бұл жағдайда осындай .htaccess директивалары бүкіл веб-серверде жарамды. Сондай-ақ, .htaccess сервердің белгілі бір ішкі каталогында орналасуы мүмкін. Содан кейін осы файлда көрсетілген директивалар каталогта орналасқан «негізгі» файлдағы директивалардың әрекетін «алдын ала анықтайды». wwwнемесе кез келген жоғары деңгейлі каталогта. Яғни, .htaccess директиваларының әсері жоғарыдан төменге мұраланған, бірақ керісінше емес. Файлға енгізілген өзгертулер дереу күшіне енеді. Бұл .htaccess ақпараты Apache веб-серверіне кірген сайын қайта оқылатындығына байланысты.

.htaccess веб-серверге арналған қол жетімді директиваның көпшілігін қамтуы мүмкін. Мәтінмәндік өрісте .htaccess туралы айтылмаған директивалар осы конфигурация файлында пайдалану үшін қол жетімді емес екенін ескеру қажет. Мысал ретінде AddType директивасын пайдаланып, Мәтінмәндік өрісте .htaccess сілтемесі бар екенін көреміз, сондықтан оны пайдалана аласыз:

Қажетті директиваны пайдалана алмасаңыз және .htaccess директивасына қосқаннан кейін қатені көрсеңіз, виртуалды хостинг шарттарында пәрменді пайдалануға тыйым салынған болуы мүмкін. Техникалық қолдау қызметіне жазыңыз, біз сізге көмектесуге тырысамыз. Мәселені егжей-тегжейлі сипаттаңыз және осы директива арқылы қол жеткізгіңіз келетін мақсаттарды көрсетіңіз.

Веб қолданбалы желіаралық қалқан

Веб-қосымшалардың брандмауэрі (ModSecurity) веб-сайттарға шабуылдарды анықтау және болдырмау үшін қажет. Тексеру белгілі бір ережелер жиынтығы бойынша жүзеге асырылады және ол сәтсіз болса, сайтқа сұрау қатемен (403 тыйым салынған) қабылданбайды.

Жалған позитив болған жағдайда, төмендегі опцияларды пайдаланып .htaccess арқылы ережелерді өшіруге болады:

  • SecRuleRemoveById - идентификатор бойынша ережені жою
  • SecRuleRemoveByTag – ережені тег бойынша жою.

Қай ережені өшіру керектігін қателер журналында error.log анықтауға болады

Идентификатор бойынша өшіру мысалы:

SecRuleRemoveById 933100 933150

Тег бойынша өшіру мысалдары:

SecRuleRemoveByTag "attack-injection-php" SecRuleRemoveByTag "CWAF"

Кодтауды қайта анықтау:

Әдепкі бойынша, веб-сервер Windows-1251 кодтауында серверде орналасқан барлық HTML құжаттарын «жібереді». Веб-сервер сіздің жеке кабинетіңіздегі ақпаратты «беретін» кодтау түрін өзгертуге болады.

Мұны істеу үшін «Қызмет ағашы» бөліміне өтіп, кодтау түрін өзгерту қажет доменді таңдаңыз. Параметрлер тізімінде келесі жолды табыңыз кодтау (әдепкі)және басыңыз қосу, төмендегі суретте көрсетілгендей.

Сондай-ақ, кодтауды .htaccess файлы арқылы өзгертуге болады. Мұны істеу үшін оған жолды қосыңыз

AddType "мәтін/html; charset=koi8-r" .html .htm .shtml

Осындай .htaccess алғаннан кейін Apache веб-сервері клиент браузеріне құжаттың koi8-r кодталғанын көрсететін тақырыпты береді.

Егер сіздің ресурста әртүрлі кодтаулардағы HTML құжаттары болса (ISO-8859-1, Windows-1250, Windows-1252, UTF-8), онда Windows-1251 кодтауымен тақырыптарды мәжбүрлеп шығаруды өшіру қажет болуы мүмкін. Ол үшін .htaccess файлына келесі жолды қосыңыз:

AddDefaultCharset өшірулі

Бұл жағдайда сәйкес кодтау әрбір html бетінде тег түрінде жазылуы керек

Мысалы: каталогты құпия сөзбен жабу жолы

.htaccess көмегімен шешілетін стандартты тапсырмалардың бірі сервердегі белгілі бір каталогқа кіруді шектеу болып табылады. Мысалы, жеке келушілерге бірегей логин мен пароль бере отырып, белгілі бір каталогқа кіруге рұқсат беру керек.

Құпия сөз арқылы кіруді шектегіміз келетін каталогта біз келесі директивалары бар .htaccess файлын жасаймыз:

AuthType Негізгі авторлық атау "Кейбір атау" AuthUserFile /үй/ uXXXXXX/.htpasswd үшін жарамды пайдаланушы қажет

Жол /home/uXXXXXX/.htpasswdсерверіміздің дискісінде пароль файлына толық жолды білдіреді. Мысалы, .htpasswd файлын (оның құрамында құпия сөздер болады) FTP арқылы серверге кірген кезде баратын үй каталогына орналастырсаңыз, онда бұл файлдың жолы келесідей болады. /home/uXXXXXX/.htpasswd, Қайда uXXXXXX— виртуалды платформаңыздың атауы (мысалы, u12345).

AuthUserFile директивасында біз логин/парольдермен файлға абсолютті жолды көрсетеміз, оны сәл кейінірек жасаймыз. .htaccess файлын мәтіндік редакторды пайдаланып тікелей серверде емес, компьютерде жасасаңыз, .htaccess файлын FTP арқылы тасымалдау керек екенін ескеріңіз. қатаң мәтіндік (ASCII) режимінде.

Құпия сөз файлын жасаңыз. Құпия сөз файлында сияқты жолдар болуы керек логин:пароль. Құпия сөз MD5 алгоритмі арқылы шифрлануы керек. Мұндай файлды жасаудың бір жолы - Apache - htpasswd құрамына кіретін бағдарламаны пайдалану (ол біздің серверде каталогта орналасқан) /usr/local/bin/, толық жол - /usr/local/bin/htpasswd).

Unix қабықшасында тікелей серверде құпия сөз файлын жасау жолын қарастырайық. Қабықшаға кіріп, келесі пәрмендерді орындаймыз:

  • htpasswd -mbc .htpasswd пайдаланушы1 sNQ7j9oR2wжаңа .htpasswd файлын жасаңыз, оған пәрмен жолында көрсетілген құпия сөзбен пайдаланушы user1 үшін жазба қосамыз. Сұраныс Міндетті түрде sNQ7j9oR2w кез келген реттелетін құпия сөзбен ауыстырыңыз - бұл құпия сөз осы жерде, мысалы ғана көрсетілген
  • htpasswd .htpasswd user2 пайдаланушы2 пайдаланушысының бар .htpasswd файлына қосылады және құпия сөз бағдарламаның сәйкес сұрауына жауап ретінде қолмен енгізіледі.

Егер сіз Windows жүйесін пайдаланып жатсаңыз және құпия сөздерді жасау үшін unix қабығын пайдаланғыңыз келмесе, htpasswd бағдарламасының Windows нұсқасын жүктеп алып, компьютерде құпия сөздері бар файлды жасап, оны серверге жүктеп салуға болады. Егер сізде Apache бағдарламасының Windows нұсқасы орнатылған болса, файл htpasswd.exeкаталогтан табуға болады Бағдарлама файлдары\Apache тобы\Apache\bin\.

Сонымен, htpasswd.exe файлын алыңыз және оны келесідей құпия сөздерді жасау үшін пайдаланыңыз:

  • htpasswd.exe -mc .htpasswd пайдаланушы1 htpasswd.exe жаңа құпия сөз файлын жасаңыз, құпия сөз және оны растау интерактивті түрде сұралады
  • htpasswd.exe -m .htpasswd пайдаланушы2 htpasswd.exe бар құпия сөз файлына user2 пайдаланушысын қосып, құпия сөзді интерактивті түрде сұраңыз.

Барлық логиндер жасалғаннан кейін файл серверге жүктелуі керек.

Мысал: Индекс файлын қайта анықтау

Жағдай: пайдаланушы каталогқа кірді http://www.your_domain.ru/price/.Осындай сұраныспен біріншісі ашылады және көрсетіледі. Егер сіз индекс файлын қайта анықтағыңыз келсе және оны бірінші ашылатын index.htm емес, мысалы, файл болатындай етіңіз. myindex.php, содан кейін бұл келесі нұсқауларды .htaccess файлына сәйкес каталогқа орналастыру арқылы орындалуы мүмкін:

DirectoryIndex myindex.php

Осындай мазмұнмен .htaccess алғаннан кейін Apache веб-сервері файлды әдепкі бойынша ашады myindex.php.

Мысалы: листингті шығаруға тыйым салу және рұқсат

Кейбір жағдайларда, каталогта әдепкі бойынша көрсетілетін файл жоқ болса, каталогтағы файлдар тізімін көрсету қажет (каталогтар тізімі). Ол үшін .htaccess файлына келесі жолды қосу керек:

Параметрлер +Индекстер

.htaccess файлы тізімге рұқсат беруді жоспарлаған нақты каталогта жасалуы керек. Бұл директива барлық ішкі каталогтарға да қолданылады (бұл виртуалды хост параметрлерінде әдепкі бойынша қосылған директива арқылы қол жеткізіледі AllowOverride All).

Директива әдепкі бойынша қосылады Параметрлер - индекстер, бұл жағдайда сіз 403 HTTP қатесін аласыз.

Файл атауларындағы кодтау дұрыс көрсетілмесе, қажетті кодтауды көрсету үшін Charset сипатын пайдаланыңыз. Мысалы, UTF-8 кодтауында кириллица таңбаларын көрсету үшін .htaccess файлына келесі нұсқауды қосыңыз:

IndexOptions Charset=UTF-8

Мысал: пайдаланушы қате беттері

Мысалы: кейбір IP мекенжайларынан кіруді блоктау

Кейде белгілі бір IP мекенжайларынан сайтқа немесе оның бір бөлігіне кіруді блоктау қажет болады.

Бұл жағдайда қажетті каталогта директивалары бар .htaccess файлын жасау керек. Мысалы, 172.16.16.16 IP мекенжайынан кіруге тыйым салу үшін:

172.16.16. бастап Рұқсат беру, Рұқсат бермеу Барлығынан бас тартуға тапсырыс беріңіз

Енді сіз IP мекенжайынан сайтқа кіруге тырысқанда 172.16.16.16 келуші 403 қатесін немесе осы қате үшін сіздің бетіңізді алады.

Пішіндегі мекенжай бөлігін көрсету 172.16.16 ішкі желіден кіруді шектейді 172.16.16/24.

Кейде сізге керісінше әрекет ету керек және сіздікі () қоспағанда, барлық IP мекенжайлары үшін сайтқа кіруді блоктау керек. Мысалы, тек 172.16.16.16 IP мекенжайына кіруге рұқсат беру үшін .htaccess файлына келесі мәлімдемені қосыңыз:

16.16.16 бастап тапсырыс беруге рұқсат беру, рұқсат бермеу

Толығырақ құжаттаманы Apache құжаттамасынан таба аласыз.

Мысалы: кейбір файлдарға кіруге тыйым салу

Кейде белгілі бір файлдарға кіруден бас тарту қажет болады. Мысалы, дерекқорларға, интерфейстерге және т.б. қол жеткізу мәліметтерін қамтитын конфигурация файлдарына. Файлда айтайық config.cfgдерекқорға кіру үшін логин/парольді сақтайсыз. Директивалары бар осы каталогта .htaccess файлын жасаңыз:

Тапсырыс беруге рұқсат беру, барлығынан бас тарту

Енді, егер кіруші браузерде осындай нәрсені терсе http://www.your_domain.ru//config.cfg, ол 403 қатесін немесе осы қате үшін сіздің бетіңізді алады.

Мысал: соңғы өзгертілген тақырып

Кейбір жағдайларда веб-сервер HTTP тақырыбын шығаруы қажет Соңғы өзгертілген. Мысалы, ресурсты Яндекс-те тіркеген кезде «Қате күндер» қатесі пайда болады. Статикалық құжаттар үшін сервер әрқашан соңғы өзгертілген мәнді қайтарады. Бұл html файлдары үшін жарамды. SSI үшін сервер соңғы өзгертілген мәнді шығарады, егер "XBitHack full" директивасы көрсетілген болса (бұл жолды .htaccess ішінде жазыңыз) және қатынасатын файлда топ жинағы үшін "орындалатын" төлсипаты болса. Сценарийлерде соңғы өзгертілген басқа тәсілдермен шығарылады. Мысалы, егер PHP сценарийі кодты динамикалық түрде жасайтынын ескерсек, онда ең қисындысы ағымдағы күн мен уақытты соңғы рет өзгертілгендей беру болады./>

Бұл келесідей жүзеге асырылады:

Назар аударыңыз: команда тақырыбысценарий html мәтінін пайдаланушы браузеріне шығаруды бастамас бұрын PHP сценарийінде орындалуы керек.

.htaccess файлы Apache серверін, сондай-ақ бірнеше басқа серверлерді конфигурациялау үшін пайдаланылады. Біртүрлі кеңейтімге қарамастан, бұл кез келген редакторда өзгертуге болатын қарапайым мәтіндік файл. Бұл оқулықта .htaccess-ті жобаларыңызда қалай пайдалануға болатынын қарастырамыз.

.htaccess файлы Apache үшін негізгі конфигурация файлы сияқты пішімді пайдаланады: httpd.conf. Көптеген параметрлерді екі файлда да пайдалануға болады.

Каталогтың .htaccess файлында көрсетілген параметрлер осы каталог пен оның ішкі каталогтары үшін httpd.conf ішінде көрсетілген параметрлерден басым болады.

.htaccess файлы кейде динамикалық конфигурация файлы деп аталады, себебі сервер оны қамтитын каталогқа сұрау жасалған сайын оны оқиды. Бұл факт негізгі конфигурация файлындағы өзгерістерден айырмашылығы, .htaccess файлындағы өзгерістер серверді қайта жүктемей-ақ дереу күшіне енетінін білдіреді. Бұл сондай-ақ .htaccess файлын пайдаланған кезде өнімділікті жоғалтуды білдіреді. Бірақ бұл сервердің негізгі конфигурация файлына кіру мүмкіндігі болмаған жағдайлар үшін өте ыңғайлы.

Қайта бағыттау және URL өзгертулері

.htaccess файлының танымал қолданылуы қайта бағыттауларды немесе URL өзгертулерін орнату болып табылады. Бұл әдіс домен атауын өзгерту немесе жобаның файл құрылымын қайта құру немесе ұзақ, есте сақтау қиын URL мекенжайларын қарапайым және түсінікті ету арқылы SEO мақсаттарына көмектеседі.

Қайта бағыттаулар

Қайта бағыттау өте қарапайым болуы мүмкін, мысалы:

Қайта бағыттау 301 ^old\.html$ http://localhost/new.html

Бұл жағдайда HTTP күй коды 301 (тұрақты жылжытылады) және old.html файлына барлық сұраулар new.html мекенжайына қайта бағытталады. Бұл URL мекенжайының ережеге сәйкес келетінін анықтау үшін тұрақты өрнекті пайдаланады, ол ереже құрылысына күрделілік қосады, бірақ URL мекенжайының дұрыс екеніне сенімділік береді. Қайта бағыттау орын алатын ресурстың толық URL мекенжайын көрсетуіңіз керек.

Өзгерістер

Өзгерту ережесі де өте қарапайым болуы мүмкін:

RewriteRule ішіндегі RewriteEngine ^old\.html$ new.html

Бұл мысалда бір файлдан екіншісіне қарапайым қайта бағыттау орын алады, ол браузердегі мекенжай жолағының мазмұнын өзгертпей, мөлдір орындалады. Бірінші директива, RewriteEngine on, жай ғана қайта жазу механизмінің жұмыс істеп тұрғанын қамтамасыз етеді.

Келуші браузерінің мекенжай жолағының мазмұнын жаңарту үшін біз RewriteRule соңындағы R жалаушасын пайдалана аламыз:

RewriteRule ^ескі\.html$ http://hostname/new.html

r жалаушасы сыртқы қайта бағыттауды тудырады, сондықтан URL жаңа бетке сәйкес болады. Сондай-ақ, жалаушаның күй кодын пайдалануға болады, ол келушінің браузерінде бетті жаңартуға әкеледі.

Қайта бағыттауды қолданудың бір ықтимал түрі URL мекенжайларын келушілер мен тексеріп шығушылар үшін қарапайым пішінге өзгерту болып табылады. Мысал қарастырайық:

RewriteRule ^өнімдері/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3

Бұл ереже келушінің URL мекенжайын пайдалануына мүмкіндік береді өнімдер/айналмалы үстелдер/техника/sl1210, ол түрленеді product.php?cat=burntables& brand=technics&prod=sl1210.Мысалдағы тұрақты өрнектегі қиғаш сызықтар арасындағы жақшалар топтауды орындайды - олардың әрқайсысын сәйкесінше $1 , $2 және $3 ретінде пайдалана аламыз. Жақшадағы [^/]+ комбинациясы қиғаш сызықтан басқа кез келген таңбаға кез келген мөлшерде сәйкес келеді.

Іс жүзінде URL мекенжайларын өзгерту мысалдарымызда сипатталғанға қарағанда айтарлықтай күрделі ережелерге ие, бірақ олар өте күрделі мәселелерді шешуге мүмкіндік береді.

Арнаулы қате беті

Веб-сайтта стандартты 404 бетін көрсету мүмкін емес. Көптеген сайттар бұл мүмкіндікті кірушіге қалған мазмұнның мәнеріне сәйкес келетін қате бетін көрсету үшін пайдаланады және келушіні болдырмайтын қосымша ақпарат береді.

404 бетін өзгерту ережесі қайта бағыттау ережесіне өте ұқсас:

ErrorDocument 404 "/404.html"

404 қатесі орын алса, көрсетілген бет көрсетіледі. Сондай-ақ басқа сервер қателерін көрсету үшін беттер жасауға болады.

Кейбір ресурстарға қол жеткізуге шектеулер

.htaccess файлының көмегімен біз кез келген файлға немесе каталогқа кіруді шектей аламыз. Мысалы, код:

AuthName "Пайдаланушы аты мен құпия сөзді енгізіңіз" AuthUserFile /path/to/.htpasswd Жарамды пайдаланушыны талап ету AuthType Basic

Ол жалпы қолжетімділіктен қорғалуы қажет каталогқа орналастырылуы керек. AuthName директивасы құпия сөз тілқатысу терезесінде көрсетілетін хабарды көрсетеді, ал AuthUserFile ережесі .htpasswd файлына жолды көрсетеді. Require директивасы тек тіркелген пайдаланушылар файлға қол жеткізе алатынын көрсетеді.

Белгілі бір файлды қорғау үшін жоғарыдағы кодты директиваға қосу керек , ол файл атауын анықтайды:

AuthName "Пайдаланушы аты мен құпия сөзді енгізіңіз" AuthUserFile /path/to/.htpasswd Жарамды пайдаланушыны талап ету AuthType Basic

Бұл мүмкіндікті пайдалану үшін жеке ресурстарға кіруге арналған пайдаланушы аттары мен шифрланған құпия сөздердің қос нүктемен бөлінген тізімі бар .htpasswd файлы қажет. Бұл файл желіден қолжетімді емес каталогта сақталуы керек. Мұндай файлды автоматты түрде жасау үшін әртүрлі құралдар бар, өйткені құпия сөз шифрланған түрде сақталуы керек.

Біз белгілі бір келушілерге кіруге тыйым саламыз

.htaccess файлының тағы бір қолданылуы белгілі бір IP мекенжайынан немесе агенттерден келетін барлық сұрауларды тез және оңай блоктау болып табылады. .htaccess файлына келесі ережелерді қосу жеткілікті:

192.168.0.1-ден тапсырыс беруге рұқсат ету, бас тартуға рұқсат беру

Тапсырыс директивасы Apache серверіне рұқсат ету/қабылдамау директивасын қандай ретпен қарастыру керектігін айтады. Мысалда рұқсат директивасы алдымен бағаланады, одан кейін бас тарту. Барлық ережеден рұқсат бірінші болып саналады (файлда бас тарту ережесінен кейін анықталғанына қарамастан) және барлық IP мекенжайларына рұқсат етіледі. Содан кейін, егер клиенттің IP мекенжайы бас тарту директивасында көрсетілгенге сәйкес келсе, кіруге тыйым салынады. Сіз IP мекенжайларының ауқымына кіруді бұғаттауға болады, мысалы: 192.168 .

Белгілі бір агенттерге кіруді блоктау үшін басқа ережелерді қолдануға болады:

RewriteCond %(HTTP_USER_AGENT) ^OrangeSpider RewriteRule ^(.*)$ http://%(REMOTE_ADDR)/$

Бұл мысалда HTTP_USER_AGENT жолы OrangeSpider (нашар бот) арқылы басталатын кез келген клиент өзі келген мекенжайға қайта бағытталады. Тұрақты өрнек таңбалардың кез келген санындағы (*) кез келген жалғыз таңбаға (.) сәйкес келеді және мекенжай үшін %(REMOTE_ADDR) айнымалысы пайдаланылады. l жалаушасы Apache серверіне бұл ереженің клиент үшін соңғысы екенін және оған басқа әрекеттерді орындаудың қажеті жоқ екенін көрсетеді.

IE үшін шығыс режимін көрсетіңіз

Сервердің белгілі бір сұрауларға қалай жауап беретінін бақылаудан басқа, біз пайдаланушылардың браузерлеріне әсер ете аламыз, мысалы, IE-ге нақты көрсету механизмін айту. X-UA-үйлесімді тақырыпты орнату үшін бар болса, mod_headers модулін пайдалануға болады:

Тақырып жинағы X-UA-үйлесімді "IE=Edge"

Бұл жолды .htaccess файлына қосу IE-ге ең жақсы қолжетімді шығыс режимін пайдалануды нұсқайды. Ережені пайдалану қажет емес файлдар үшін бұл тақырыпты пайдаланудан да аулақ бола аламыз :

Тақырып орнатылмаған X-UA-үйлесімді

Кэштеуді қосыңыз

Кэштеуді орнату өте оңай және сайттың жүктелуін тездетеді. Сирек өзгеретін ресурстар үшін жаңарту күнін орнату арқылы біз өзгеріссіз қалатын мазмұн бөліктерін қайталап жүктеп алудың алдын аламыз.

Мысалы:

ExpiresByType суреті/gif "қол жеткізу плюс 1 ай" ExpiresByType сурет/png "қол жеткізу плюс 1 ай" ExpiresByType image/jpg "қол жеткізу плюс 1 ай" ExpiresByType image/jpeg "қол жеткізу плюс 1 ай" ExpiresByType "қолжетімділік плюс 1 ай" month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 ай" ExpiresByType video/webm "access plus 1 ай"

Кез келген мазмұн түріне ExpiresByType ережелерін қосуға болады. ExpiresActive директивасы ресурстың жарамдылық мерзімі тақырыбын құруға мүмкіндік береді. Бұл директива модульдің болуына байланысты mod_expires Apache серверінде.

Қысуға рұқсат етіңіз

Ресурс өнімділігіне әсер етудің тағы бір жолы қысуды пайдалану болып табылады:

FilterDeclare COMpressS FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html FilterProvider COMPRESS DEFLATE Resp=Content-Type $text/css FilterProvider COMPRESS DEFLATE resp=Content-Type COMPRESS Filter/FiltreChin $text өзгерту=иә;байтаралықтар=жоқ

Бұл қысу схемасы модуль орнатылған Apache (2.1+) жаңа нұсқаларында жұмыс істейді mod_filter. Ол мазмұнды қысу үшін DEFLATE алгоритмін пайдаланады. Мысалда біз қысылатын ресурс түрлері ретінде text/html , text/css және text/javascript көрсетеміз.

Сүзгі анықтамасы COMPRESS опциясы бар FilterDeclare директивасымен басталады. Содан кейін ол сүзгі қолданылатын мазмұн түрлерін тізімдейді. FilterChain ережесі серверге FilterProvider ережелерінің тізіміне негізделген тізбекті құруды айтады. FilterProtocol директивасы орындау кезінде сүзгі пайдаланатын опцияларды көрсетуге мүмкіндік береді. өзгерту=иә (мазмұнды сүзгі арқылы өзгертуге болады (біздің мысалда – қысылған)) және байт аралығы=жоқ (сүзгіні тек толық файлдарда пайдалануға болады) опцияларын көрсету қажет.

Apache ескі нұсқалары модульді пайдаланады mod_deflate DEFLATE қысуды конфигурациялау үшін. Сүзгіні басқарудың аз нұсқалары бар, бірақ ережелер қарапайым:

SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE мәтін/html мәтіні/css мәтіні/javascript

Мысал SetOutputFilter ережесін пайдаланып қысу алгоритмін орнатады және AddOutputFilterByType ережесін пайдаланып сүзгіге арналған мазмұн файлының түрлерін анықтайды.

Әдетте сервер Apache серверінің нұсқасына байланысты сипатталған модульдердің бірін пайдаланады. Әдетте қандай модуль қолданылатынын білесіз. Бірақ егер сіз әртүрлі серверлерде пайдалануға болатын жалпы htaccess файлын жасасаңыз, онда директива арқылы оған ережелердің екі жинағын да қосуға болады. . Осылайша, қажетті ережелер пайдаланылады және конфигурация файлында жойылған модульдерге арналған ережелер болса, 500 қатесін тудырмауға болады. Сондай-ақ, серверлерді бір процессор блогында көптеген сайттарды қолдайтын хостингке орналастырған кезде, үлкен жүктеме жасамау үшін қысуды өшіруге болатындығын есте ұстаған жөн.

Қорытынды

Бұл оқулық htaccess файлының ең жиі қолданылатын түрлерін қамтиды. Мұнда берілген ақпарат өте танымал тақырыпқа кіріспе болып табылады. Көптеген басқа опциялар мен конфигурациялар бар, оларды зерттеуге және пайдалануға тұрарлық.

.htaccess(атының басында нүкте бар) - Apache серверлеріне арналған конфигурациялау файлы, ол негізгі конфигурация файлына (apache/conf/httpd.conf) кіруді қамтамасыз етпей-ақ серверді бөлек каталогтарда (қалталарда) конфигурациялауға мүмкіндік береді. . Мысалы, каталогтағы файлдарға кіру құқықтарын орнатыңыз, индекстік файлдардың атын өзгертіңіз, Apache қателерін дербес өңдеңіз, келушілерді арнайы қате беттеріне қайта бағыттаңыз. .htaccessкеңейтімі htaccess болып табылатын кәдімгі мәтіндік құжат болып табылады. Бұл файл әдетте сайттың түбірінде орналасады, бірақ сайтыңыздың әртүрлі каталогтары үшін қосымша .htaccess файлдарын жасауға болады.

Mod_rewrite- URL мекенжайларын түрлендіру үшін веб-серверлер пайдаланатын модуль.

mod_rewrite арқылы орындалған барлық әрекеттерді тіркеу керек болса, оны httpd.conf ішіндегі келесі жазба арқылы қосуға болады:

RewriteLog /usr/local/apache/logs/mod_rewrite.log RewriteLogLevel 1

Mod_rewrite модулінің директивалары

Ең жиі қолданылатын опциялар

%(REQUEST_URI) Сұраныс жолы (домен атауы және GET параметрлері жоқ), мысалы "/server/htaccess/"
%(HTTP_HOST) Домен атауы, мысалы "max22.ru"
%(QUERY_STRING) GET жолының параметрлері

.htaccess файлы арқылы қайта бағыттауды жүзеге асыру опциялары

  1. Қарапайым қайта бағыттау:
    301 / http://www.domainname.ru/ қайта бағыттаңыз немесе /secret http://www.site.ru/nosecret немесе # RedirectMatch 301 тұрақты тіркесі арқылы қайта бағыттаңыз .* http://www.site.ru/? .htaccessнемесе httpd.conf Apache үшін. Бірінші «/» сайттың жоғарғы деңгейінен бастап барлық ішкі каталогтарды қоса, қайта бағытталатынын білдіреді (соңғы «/» қоюды ұмытпаңыз). Ескі беттің PR-ын сақтай отырып, тек бетті қайта бағыттағыңыз келсе, мұны істеуге болады:

    301 /old/old.htm http://www.you.ru/new.htm қайта бағыттаңыз, мұнда:
    /old/old.htm - ескі беттің жолы мен аты
    http://www.you.com/new.htm - жылжытылған беттің жаңа жолы және жаңа атауы

  2. Кез келген бетке пайдаланушы IP арқылы немесе белгілі бір бетті сұрау кезінде (сонымен қатар атау бүркенішімен) қайта бағыттаңыз.
    Пайдаланушыда IP 192.152.37.125 болса, ол user.php бетіне қайта бағытталады: SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR="redir" RewriteCond %(REDIR) қайта бағыттау RewriteRule ^/$p /us.
  3. Белгілі бір файлдарды сұраған кезде қайта бағыттау. Егер кеңейтімі .htaccess файлында (gif және jpg) көрсетілмеген файлдар сұралса, қайта бағыттау келесідей болады: RewriteEngine On RewriteRule !.(gif|jpg)$ index.php
  4. mod_rewrite пайдалану:
    Параметрлер +FollowSymLinks RewriteEngine, RewriteCond %(HTTP_HOST) ^yourdomain\.ru RewriteRule ^(.*)$ http://www.yourdomain.ru/$1
  5. Тұрақты өрнекпен қайта бағыттау:
    RedirectMatch 301 (.*) http://www.yourdomain.ru$1 .htaccess файлында тіркелген. (.*) RedirectMatchдомен атауынан кейінгі тұрақты өрнек үлгілеріне сәйкес келеді. Сондықтан ^/yourdomain.ru сайтындағы үлгіні сәйкестендіру мүмкін емес. Дегенмен, беттерді .html кеңейтімін пайдаланып, аттас, бірақ .php кеңейтімі бар файлдарға түрлендіруге болады: RedirectMatch 301 (.*)\.html$ http://www.yourdomain.ru$1.php Қажет болса жеке беттер үшін басқа қайта бағыттауды орындау үшін келесіні пайдалануға болады: RedirectMatch Тұрақты ^/html/resources.html$ http://www.newdomain.com/resources.php RedirectMatch Тұрақты ^/html/other_page.html$ http: //www.newdomain.com /other_page.php RedirectMatch тұрақты ^/(.*)$ http://www.newdomain.com/ " RedirectMatch тұрақты" "RedirectMatch 301" баламасы, "*(қойылмалы таңба)" бар жол осы тізімдегі соңғы болуы керек.
  6. Оқуға оңай URL мекенжайларын жасау
    Мысалы, www.site.ru/product.php?id=123 сайтын www.site.ru/product/123 сайтына келесідей түрлендіру үшін: RewriteRule жүйесінде RewriteEngine ^product/([^/\.]+)/?$ өнім .php?id=$1 [L] Келесі мысалда www.site.ru/script.php?product=123 мекенжайын www.site.ru/cat/product/123/ түріне түрлендіреміз: RewriteRule cat/(.* )/(. *)/$ /script.php?$1=$2
  7. PHP-ге қайта бағыттау:
    header("HTTP/1.1 301 Тұрақты жылжытылды"); тақырып («Орналасқан жері: http://www.newdomain.ru/newdir/newpage.htm»); Шығу(); Әрине, сіз бетті жасауыңыз керек, оған кіру кезінде Қайта бағыттау пайда болады және оны серверге орналастырады. HTTP/1.1 (ортақ хостингті қолдамайтын HTTP/1.0 немесе HTTP/0.9 емес) көрсеткен дұрыс.
  8. Қалтадағы барлық файлдарды бір файлға қайта бағыттаңыз.
    Мысалы, сізге енді сайттың супер жеңілдіктер бөлімі қажет емес және барлық сұрауларды /superdiscount қалтасына /hot-offers.php бір файлына қайта бағыттағыңыз келеді. Ол үшін .htaccess файлына келесі кодты қосыңыз. RewriteRule ^superdiscount(.*)$ /hot-offers.php
  9. Бір файлдан басқа бүкіл қалтаны қайта бағыттаңыз
    Келесі мысалда /superdiscount қалтасындағы барлық файлдар /hot-offers.php файлына қайта бағытталады, /superdiscount/my-ebook.html файлынан басқа /hot-to-make-million.html RewriteRule ^superdiscount/my -ebook.html /hot-to-make-million.html RewriteRule ^superdiscount(.*)$ /hot-offers.php
  10. Динамикалық URL мекенжайын жаңа файлға қайта бағыттаңыз.
    Бұл опция параметрлері бар динамикалық URL мекенжайын жаңа статикалық файлға қайта бағыттағыңыз келсе пайдалы. RewriteRule ^article.jsp?id=(.*)$ /latestnews.htm Яғни, қазір http://www.kass.ws/article.jsp?id=8632 және/немесе http сияқты файлға сұрау: //www .kass.ws/article.jsp?id=1245 http://www.kass.ws/latestnews.htm файлына жіберіледі.
  11. Жаңа файлдарды жаппай қайта бағыттау.
    Енді көптеген URL мекенжайларын қайта бағыттау қажет болғанда, мысалы, CMS-ті өзгерткеннен кейін ең қиын сәтке көшейік. Мұнда бірден бірқатар мәселелер туындайды. Біріншіден, барлық өзгертілген мекенжайларды .htaccess файлына енгізу көп уақытты алады, ал тапсырманың өзі ұнамды емес. Екіншіден, .htaccess файлындағы тым көп жазбалар Apache серверін баяулатады. Үшіншіден, сонша ақпаратты енгізгенде, бір жерден қателесу ықтималдығы жоғары. Сондықтан, ең жақсы жол - сізге динамикалық қайта бағыттауды жазатын бағдарламашыны жалдау.
    Төмендегі мысал PHP тілінде жазылған, бірақ оны кез келген тілде де орындауға болады. Сіз өзіңіздің сайтыңыздағы жаңа байланыстыру жүйесіне ауыстыңыз және ескі идентификатормен аяқталатын барлық файлдар тізімде болуы керек делік. Біріншіден, дерекқорда қайта бағыттаудың ескі идентификаторы мен жаңа URL мекенжайын қамтитын кесте жасаймыз. old_id INT new_url VARCHAR (255) Содан кейін ескі идентификаторларыңызды жаңа URL мекенжайларымен байланыстыратын кодты жазамыз
    Осыдан кейін .htaccess файлына келесі жолды қосыңыз: RewriteRule ^/product-(.*)_(+).php /redirectold.php?productid=$2 содан кейін 301 қайта бағыттауды қолдайтын PHP redirectold.php файлын жасаңыз:

    Енді ескі URL мекенжайларына барлық сұраулар redirectold.php деп аталады, ол жаңа URL мекенжайын тауып, жаңа сілтемеңізбен 301 жауабын қайтарады.

    Уақытқа байланысты қайта бағыттайды

    Уақытты ескеретін мазмұн сияқты трюктерге келетін болсақ, көптеген веб-шеберлер әлі де арнайы беттерге қайта бағыттайтын CGI сценарийлерін пайдаланады. Мұны mod_rewrite арқылы қалай жасауға болады?

    Қайта бағыттау шарттары үшін TIME_xxx деп аталатын көптеген айнымалылар бар. Салыстыру үшін арнайы лексикографиялық үлгілермен бірге STRING және =STRING уақытына байланысты қайта бағыттауды орындай аламыз: RewriteEngine, RewriteCond %(TIME_HOUR)%(TIME_MIN) >0700 RewriteCond %(TIME_HOUR)%(TIME_MIN)<1900 RewriteRule ^foo\.html$ foo.day.html RewriteRule ^foo\.html$ foo.night.html

    Бұл foo.html URL мекенжайын 07:00-ден 19:00-ге дейін сұрау кезінде foo.day.html мазмұнын және қалған уақытта foo.night.html мазмұнын қайтарады.

  12. Біз барлық сұрауларды басында алып тастаймыз "WWW."
    RewriteEngine # параметрінде mod_rewrite RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^/?(.*) http://%1/$1 пайдаланғымыз келетінін хабарлайды.

    Домен атауын тексереміз, егер ол www-дан басталса, онда ереже жұмыс істейді: «бәрі http://%1/$1». Мұнда % 1 — www жоқ домен (шарттан алынған), ал $1 — мекенжай (ереженің өзінен алынған).

  13. Біз соңында барлық сұраулардан index.php файлын алып тастаймыз. index.php жоқ бетке қайта бағыттаңыз

    Іздеу жүйелері қайталанатын беттерді қабылдамайды. Бұған жол бермеу үшін http://your_domain/ және http://your_domain/index.php сияқты беттерді жою (бір-біріне жабыстыру) қажет.

    RewriteCond %(THE_REQUEST) ^.*/index.php RewriteRule ^(.*)index.php$ http://%(HTTP_HOST)/$1

  14. Кеңейтімді өзгерту .htmlқосулы .php
    Кейде сізде статикалық веб-сайт бар, бірақ онымен жұмыс істеу үшін сізге PHP сценарийінің қандай да бір түрі қажет. Бұл әрекетті орындау үшін серверге бұл бетті php файлы ретінде қарастыруды айту керек. AddHandler application/x-httpd-php .html Бұл әдісті басқа файл кеңейтімдері үшін пайдалануға болады: AddHandler application/x-httpd-php .xml AddHandler application/x-httpd-php .asp

Белгілі бір каталогқа кіруге тыйым салу

  1. барлығы үшін каталогтағы барлық файлдарға: барлығынан бас тарту
  2. белгілі бір файлға: барлығынан бас тарту
  3. IP пайдаланушысы бойынша: бас тартуға тапсырыс беру, барлығынан бас тартуға рұқсат беру 192.152.37.125 мекенжайынан рұқсат ету Бұл каталогқа кіруге тек IP 192.152.37.125 бар пайдаланушы рұқсат етіледі.

    Егер сіз, керісінше, жеке IP-пайдаланушыларға сіздің сайтыңызға кіруге тыйым салғыңыз келсе, біз келесі жолдарды жазамыз:

    192.152.37.125-тен 123.456.177-ден бас тартуға тапсырыс рұқсат ету, бас тартуға рұқсат беру барлығынан бас тарту

  4. Options -Indexes директивасы индекстік файл болмаса, каталогтың мазмұнын көрсетуге тыйым салады. . Содан кейін .htaccess файлына келесі жолды қосуға болады: Параметрлер -Индекстер Бұл жағдайда каталогтағы файлдар тізімінің орнына келуші HTTP қатесі 403 алады - кіруге тыйым салынады.
  5. Кеңейтімдердің бірнеше түрі бар файлдарға кіруге тыйым салу
  6. барлығынан бас тарту

    *.inc, *.conf және *.cfg кеңейтімі бар файлдарға кіруге тыйым салынады. Директива, әдепкі бойынша, тұрақты өрнектермен жұмыс істемесе де, оларды директивалық опцияларға тильде таңбасын (~) қою арқылы қосуға болады. Синтаксис келесідей:

    [tilde] [space] [further_all_without_spaces] Бұл қатынасты блоктау үшін келесіні жазыңыз: RewriteRule ^.htaccess$ - [F] Бұл ереже келесідей аударылған:
    Егер біреу .htaccess файлына кіруге әрекеттенсе, жүйе «403 HTTP жауабы» немесе «403 Тыйым салынған – Сізде осы серверде /.htaccess файлына кіруге рұқсатыңыз жоқ» қате кодын шығаруы керек.

    Осы тұрақты өрнектегі ^.htaccess$ құрылысы мынаны білдіреді:
    ^ - жолдың басындағы якорь
    $ - жолдың соңындағы якорь
    . - тұрақты өрнектерде нүкте «.» мета таңбаны білдіреді және әлі де нақты нүктені пайдаланғыңыз келсе, кері қиғаш сызықпен құтылу керек.

    Файл атауы бастапқы және соңғы анкерлер арасында дәл орналасуы керек. Бұл тек осы нақты файл атауын және басқа ешкім қате кодын жасамайтынын қамтамасыз етеді.
    [F]- арнайы «тыйым салынған» жалау (тыйым салынған).
    - әріптердің жағдайын ескермеу.
    - «немесе келесі шартты» білдіреді.

Кодтау анықтамасы

Сервер файлдарды «жіберетін» кодтауды анықтау

AddDefaultCharset windows-1251 опциялары: KOI8-R, UTF-8, Windows-1251

Жүктелген файлдар үшін кодтауды анықтау

CharsetSourceEnc терезелері-1251

.htaccess арқылы каталог құпия сөзін орнату

Каталогқа құпия сөз орнату үшін Apache веб-серверінде берілген негізгі авторизация жүйесін пайдалануға болады. Құпия сөз арқылы кіруді шектегіміз келетін каталогта келесі директивалары бар .htaccess файлын жасаңыз: AuthType Basic AuthName "Кейбір атау" AuthUserFile /www/some_login/www/htdocs/some_dir/.htpasswd жарамды пайдаланушы жолын талап етеді / www/some_login/ www/htdocs/some_dir/.htpasswd сервер дискіміздегі құпия сөз файлының толық жолын білдіреді. Мысалы, .htpasswd файлын (онда құпия сөздер болады) серверге FTP арқылы кірген кезде баратын үй каталогына орналастырсаңыз, онда бұл файлдың жолы /www/some_login/www/htdocs/ сияқты болады. some_dir/.htpasswd , мұнда some_login - сіздің логиніңіз. AuthUserFile директивасында біз логин/парольдермен файлға абсолютті жолды көрсетеміз, оны сәл кейінірек жасаймыз. .htaccess файлын мәтіндік редакторды пайдаланып тікелей серверде емес, компьютерде жасасаңыз, .htaccess файлын FTP арқылы қатаң түрде мәтіндік (ASCII) режимінде тасымалдау керек екеніне ерекше назар аударыңыз.

Құпия сөз файлын жасаңыз. Құпия сөз файлында login:password сияқты жолдар болуы керек. Құпия сөз MD5 алгоритмі арқылы шифрлануы керек. Мұндай файлды жасаудың бір жолы - Apache - htpasswd құрамына кіретін бағдарламаны пайдалану (біздің серверде ол /usr/local/apache/bin каталогында орналасқан, толық жол - /usr/local/apache/bin/htpasswd) .

Unix қабықшасында тікелей серверде құпия сөз файлын жасау жолын қарастырайық. Қабықшаға кіріп, келесі пәрмендерді орындаймыз:

Htpasswd -mbc .htpasswd user1 7B1safkir - жаңа .htpasswd файлын жасаңыз, оған пәрмен жолында көрсетілген құпия сөзбен user1 пайдаланушысының жазбасын қосамыз. htpasswd .htpasswd user2 - бар .htpasswd файлына user2 қосыңыз және бағдарламаның сәйкес сұрауына жауап ретінде құпия сөзді қолмен енгізіңіз.

Барлық логиндер жасалғаннан кейін файл серверге жүктелуі керек.

Бетке құпия сөздерді орнатудың басқа жолдары туралы

Өзіңіздің қате беттеріңізді орнату

Сіз өзіңіздің қате бетіңізді келесідей орнатуға болады: ErrorDocument 404 http://www.site.ru/404.php IE 512 байттан кіші беттерді елемейді.

Каталогтар мен ішкі каталогтарды индекстеу

Іздеу жүйелері каталогтар мен ішкі каталогтарды индекстеуді болдырмау үшін келесі жолды жазу керек, мысалы: DirectoryIndex index.php Бұл директива каталогқа қатынасу кезінде файл атауын көрсетпей шақырылатын файлды көрсетеді.

Бірнеше индекстік беттерді көрсетуге болады. Каталог сұралғанда, олар DirectoryIndex директивасында тізімделген ретпен ізделеді. Егер index.html файлы табылмаса, онда index.php файлы ізделеді, т.б.

DirectoryIndex index.html index.php index.shtml

Жеке мен бос каталогтардан сайттың негізгі бетіне немесе басқа қолайлы бетке қайта бағыттауды қалаймын. Мысалы, www.site.ru/pic/ каталогын www.site.ru сайтына қайта бағыттауға болады.

Суреттерді жүктеуден қорғау

Веб-шеберлер сіздің сайтыңыздан суреттермен бірге мазмұнды ашық түрде көшіреді және суреттер сіздің жеке серверіңізден жүктеледі. Бұл қажетсіз трафикті тудырады, бұл жиі бірқатар мәселелерге әкеледі. Өзіңізді осындай веб-шеберлерден қалай қорғауға болады және іздеу роботтарының суреттерді индекстеуіне жол бермеуге болады? Бұл қарапайым: RewriteCond %(HTTP_REFERER) жүйесінде RewriteEngine. RewriteCond %(HTTP_REFERER) !^http://([^.]+\.)?сайт\. RewriteCond %(HTTP_REFERER) !google\. RewriteCond %(HTTP_REFERER) !search\?q=cache RewriteCond %(HTTP_REFERER) !msn\. RewriteCond %(HTTP_REFERER) !yahoo\. RewriteCond %(REQUEST_URI) !^/hotlinker\.gif$ RewriteRule \.(gif|jpg|png)$ /hotlinker.gif hotlinker.gif — нақты кескіндердің орнына көрсетілетін кескін. Мен осы суретте логотипті және веб-сайтыңызға сілтемені көрсетуді ұсынамын.

Рұқсат етілмеген сайттардағы суреттерге кіруге тыйым салудың тағы бір нұсқасы:

SetEnvIfNoCase сілтемесі "^$" local_ref=1 SetEnvIfNoCase сілтемесі "^http://(www\.)?htmlweb\.ru" local_ref=1 SetEnvIfNoCase сілтемесі "^http://(www\.)?images\.yandex\ .ru" local_ref=1 SetEnvIfNoCase Referer "^http://(www\.)?hghltd\.yandex\.com" local_ref=1 Env=local_ref ішінен тапсырыс беруге рұқсат ету, рұқсат беруден бас тарту

Іздеу жүйелері мен тексеріп шығушылардың әртүрлі түрлері веб-сайтыңызда үлкен трафик жасайды. Төмендегі код блогы боттардың сайтқа кіруіне тыйым салуға мүмкіндік береді.

RewriteCond% (http_user_agent) (Slurper | Церитрик | exabot | ofniex | BecomeBot|Clustered-Search-Bot|MSIECrawler|freefind|galaxy|genieknows|INGRID|grub-client|MojeekBot|NaverBot|NetNose-Crawler|OnetSzukaj|PrassoSunner|T-H-U-N-S-T-E-O| laBot|Vagabondo|fantomBro wser|stealthBrowser |cloakBrowser fantomCrew \ Browser|Girafabot|Indy\ Library|Intelliseek|Zealbot| Windows\ 95|^Mozilla/4\.05\ \$|^Mozilla/4\.0$) RewriteRule ^(.*)$ - [ F] # RewriteCond %(HTTP_USER_AGENT) ^Mozilla.* RewriteCond %(HTTP_USER_AGENT) ^Opera.* RewriteCond %(HTTP_USER_AGENT) ^Firefox.* RewriteCond %(HTTP_USER_AGENT) ^Netscape.* RewriteRule ^(L.) RewriteRule ^(]wle. *)$ - [F]

robots.txt файлына қоңырауларды бақылау

Іздеу жүйелеріне кіру туралы қосымша ақпарат алу үшін, robots.txt файлына кіру туралы егжей-тегжейлі ақпарат болуы пайдалы, мұны ұйымдастыру үшін келесі жазбалар ".htaccess" ішінде болуы керек: Параметрлердегі RewriteEngine +FollowSymlinks RewriteBase / RewriteRule ^. robots.txt$ / robot.php?%(REQUEST_URI) Енді "robots.txt" файлын сұраған кезде, біздің RewriteRule келуші (робот) сұрауларды өңдейтін robot.php сценарийіне қайта бағыттайды. Сонымен қатар, айнымалы сценарийге беріледі, ол сіздің қажеттіліктеріңізге сәйкес өңделеді. "REQUEST_URI" сұралған файлдың атын көрсетеді. Бұл мысалда бұл "robots.txt". Сценарий «robots.txt» мазмұнын оқиды және оны веб-шолғышқа немесе робот іздеу жүйесіне жібереді. Осылайша біз келушілердің хиттерін санай аламыз және журнал файлдарын сақтай аламыз.

PHPSESSID

URL мекенжайына PHPSESSID қосуды өшіру үшін index.php басына келесіні енгізіңіз:

Ini_set("session.use_trans_sid", 0);

Немесе .htaccess ішінде жазыңыз:

Php_flag session.use_trans_sid Өшірулі

Егер мұның бәрі сізге күрделі болып көрінсе, htaccess көмегімен динамикалық URL мекенжайларын статикалық URL мекенжайларына түрлендіруге арналған дайын қызметті пайдаланыңыз.

Кэштеу директивалары

Қол жеткізу уақыты бойынша барлық файл түрлерін кэштеу ExpiresActive on ExpiresDefault "қатынау плюс 600 секунд" Барлық файл түрлерін өзгерту уақыты бойынша кэштеу ExpiresActive on ExpiresDefault "өзгерту плюс 600 секунд" Белгілі бір файл түрлері үшін кэштеу ExpiresByType text/css "өзгерту плюс 600 ByT" мерзімі аяқталады image/jpeg "өзгерту плюс 600 секунд" ExpiresByType сурет/gif "өзгерту плюс 600 секунд" ExpiresByType суреті/x-ico "өзгерту плюс 600 секунд" ExpiresByType сурет/png "өзгерту плюс 600 секунд"

Apache серверін пайдаланып кэштеуді өшіріңіз

Apache серверінің конфигурация файлын ашыңыз httpd.confжәне келесі жолдарға түсініктеме беріңіз:

LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c

.htaccess ішіне келесіні енгізіңіз:

# Осы қалтада кэштеуді өшіру # Модульдерді қосуды талап етеді # mod_headers.c және mod_expires.c # # Cache-Control тақырыбы Тақырыпқа Cache-Control қосымшасы "сақтау жоқ, кэш жоқ, қайта тексеру қажет"# Тақырыптың мерзімі аяқталады ExpiresActive On ExpiresӘдепкі "қазір"

Қажетті тақырыптар автоматты түрде жіберіледі және оларды PHP-де арнайы жазудың қажеті жоқ - кэш қазірдің өзінде өшірілген!

Кэш-басқару кэштеу http тақырыбының сипаттамасы

.htaccess файлы арқылы кэштеу

# Осы қалтада кэштеуге рұқсат беріңіз # # mod_headers.c және mod_expires.c модульдерін қосуды талап етеді # ExpiresActive on #ExpiresDefault "кіру плюс 1 сағат" #ExpiresDefault "қол жеткізу плюс 10 жыл" ExpiresDefault "қол жеткізу плюс 1 ай" ExpiresByType мәтіні/кэш-манифест "қол жеткізу плюс 0 секунд" ExpiresByType мәтіні/html "кіру плюс 0 секунд мәтін" Expires xml "access plus 0 секунд" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/rss+xml "access plus 1 ай" ExpiresByType image/x-icon "access плюс 1 апта" " ExpiresByType image/gif "қол жеткізу плюс 1 жыл" ExpiresByType image/png "access plus 1 year" ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType видео/ogg плюс 1 жыл " " ExpiresByType audio/ogg "access plus 1 year" ExpiresByType audio/mp3 "access plus 1 year" ExpiresByType video/mp4 "access plus 1 year" ExpiresByType video/webm "access plus 1 year" ExpiresByType text/x-access plus "component 1 ай" ExpiresByType font/truetype "access plus 1 year" ExpiresByType font/opentype "access plus 1 year" ExpiresByType қолданбасы/x-font-woff "access plus 1 year" ExpiresByType image/svg+xml "access plusB month" ExpiresByType application/vnd.ms-fontobject "access plus 1 year" ExpiresByType text/css "access plus 2 ай" ExpiresByType application/javascript "access plus 2 ай" ExpiresByType text/javascript "access plus 2 ай" Тақырыпқа кэш-басқару "қоғамдық" қосу

.htaccess файлы арқылы JavaScript файлдарын кэштеу

Әдепкі "қолжетімділік плюс 3 күн" мерзімі бітеді

Кэштеу кезінде абай болыңыз, себебі... файл өзгертілгенде, пайдаланушы жаңа нұсқаны 3 күннен кейін ғана ала алады!

PHP кодын өңдеуге html беттерін қалай мәжбүрлеуге болады?

.htaccess файлыңызға келесі жолдарды жазыңыз: RemoveHandler .php .htm .html AddHandler application/x-httpd-php .php .htm .html

Бір виртуалды хостингте бірнеше веб-сайтты қалай орналастыруға болады?

Бір ортақ хостингте екі немесе одан да көп веб-сайттарды орналастыру үшін, сіздің тарифтік жоспарыңыз бойынша сізге бөлінген домендердің санына қарамастан, «.htaccess» файлында келесі жолдарды жазу керек:

RewriteEngine RewriteRule жүйесінде ^newdirectory/ - [L] RewriteCond %(HTTP_HOST) (www.)?newdomain.ru RewriteRule (.*) newdirectory/$1 [L]

Қайда:
newdirectory/ - екінші сайт орналасатын қалта
newdomain.ru - біз қайта бағытталатын домен

Бұл жағдайда сізде бір электрондық пошта тіркелгісі болатынын ескеріңіз. Анау. егер сізде қорап болса [электрондық пошта қорғалған], содан кейін newdomain.ru доменін қорапқа қосқаннан кейін [электрондық пошта қорғалған]екінші аты пайда болады - [электрондық пошта қорғалған]. Кез келген жаңа пошта жәшігін жасаған кезде (мысалы, ақпарат) оған автоматты түрде екі атау тағайындалады - [электрондық пошта қорғалған]Және [электрондық пошта қорғалған].

Бірнеше каталогтағы беттерді іздеу

Кейде веб-серверге бірнеше каталогтағы беттерді іздеуге рұқсат беру қажет.

Алдымен # жүйесінде RewriteEngine, оны көрсетілген жерден табуға тырысайық/... # ...табылған болса, іздеуді аяқтаңыз: RewriteCond /your/docroot/dir1/%(REQUEST_FILENAME) -f RewriteRule ^(.+) /your/ docroot/dir1/$1 [L] # екіншіден, оны pub/... # ... тауып көрейік, егер табылса, іздеуді аяқтаңыз: RewriteCond /your/docroot/dir2/%(REQUEST_FILENAME) - f RewriteRule ^( .+) /your/docroot/dir2/$1 [L] # әйтпесе басқа директивалар үшін жалғастырыңыз RewriteRule ^(.+) -

Қолданушының виртуалды хосттары

Пайдаланушы беттері үшін www.subdomain.domain.ru мекенжайларын бергіңіз келсе, http://www.subdomain.domain.ru/path ішкі жолына /home/subdomain/path түрлендіру үшін келесі ережелер жинағын пайдалануға болады. :

RewriteCond %(HTTP_HOST) ^www\.[^.]+\.ru$ RewriteRule бойынша RewriteEngine ^(.+) %(HTTP_HOST)$1 [C] RewriteRule ^www\.([^.]+)\.ru( .*) /үй/$1$2

Файлдар серверге жүктелген кезде зақымдалады

Файлдарды пішіндер арқылы тасымалдау кезінде (enctype="multipart/form-data" көрсетілген) екілік деректер зақымдалса, /cgi-bin/.htaccess файлына келесі директиваны қосыңыз: CharsetRecodeMultipartForms Off.

SWF файлдарын жүктеу қатесі.
Кілт сөздері бар беттерге кіру кезіндегі қателер
$_REQUEST теріңіз

Бұл орнатылған модульге байланысты болуы мүмкін Апачиде. Әдепкі бойынша, ол сұраулардағы SQL аргументтері және басқа ықтимал қауіпті пәрмендері бар жолдарды блоктайды.

Мүмкін қате туралы хабарлар:

Тыйым салынған

Сізде бұл серверде /adm/index.php файлына кіруге рұқсатыңыз жоқ. Сонымен қатар, сұрауды өңдеу үшін ErrorDocument пайдалану әрекеті кезінде 404 Not Found қатесі орын алды.

Сұрау қауіпсіз емес және қабылданбады.

.htaccess файлына қосыңыз SecFilterEngine өшірулі SecFilterScanPOST өшіруліХабарлама үшін:

"POST /wp-admin/async-upload.php HTTP/1.1" 406,354 "-" "Shockwave Flash"

Сіз серверге файлдарды жүктеп салу үшін ғана қорғауды алып тастай аласыз: SecFilterEngine өшірулі SecFilterScanPOST өшірулі

Бүкіл сайттан қорғауды алып тастамай, қорғанысты тек қажет қалтадан алып тастау оңтайлы.

Сервер айнымалылары

Бұл пішіннің айнымалылары %(NAME_OF_VARIABLE)

Қайда NAME_OF_VARIABLEкелесі тізімнен алынған жол болуы мүмкін:

Бұл айнымалылар дәл осылай аталған HTTP MIME тақырыптарына және Apache серверінің айнымалы мәндеріне немесе Unix жүйесінің құрылымы tm өрістеріне дәл сәйкес келеді. mod_rewrite үшін ерекше болып табылатындар мыналарды қамтиды:

IS_SUBREQ- Сұрау қазіргі уақытта ішкі сұрау ретінде орындалса, «шын» мәтіні болады, әйтпесе «жалған». Ішкі сұраулар өз тапсырмаларын орындау үшін қосымша файлдармен немесе URI мекенжайларымен жұмыс істеуді қажет ететін модульдер арқылы жасалуы мүмкін.

API_VERSION- Бұл include/ap_mmn.h ішінде анықталғандай, ағымдағы сервер құрастыруындағы Apache модулінің API нұсқасы (сервер мен модуль арасындағы ішкі интерфейс). Модульдің API нұсқасы қолданылған Apache нұсқасына сәйкес келеді (Apache 1.3.14 нұсқасы үшін, мысалы, ол 19990320:10), бірақ бұл негізінен модуль авторларын қызықтырады.

THE_REQUEST- Браузер серверге жіберген толық HTTP сұрау жолы (яғни, "GET /index.html HTTP/1.1"). Ол браузер жіберген қосымша тақырыптарды қамтымайды.

REQUEST_URI- HTTP сұрау жолында сұралған ресурс.

REQUEST_FILENAME- Осы сұранысқа сәйкес файлға немесе сценарийге сервердің файлдық жүйесіндегі толық жол.

Ескертулер:

  1. SCRIPT_FILENAME және REQUEST_FILENAME айнымалылары бірдей мәндерді қамтиды, яғни Apache серверінің ішкі request_rec құрылымының файл атауы өрісінің мәні. Бірінші атау жай ғана CGI айнымалысының белгілі атауы, ал екіншісі REQUEST_URI тұрақты көшірмесі (сұраныс_rec құрылымының uri өрісінің мәнін қамтиды).
  2. Арнайы пішім бар: %(ENV:variable) мұнда айнымалыкез келген орта айнымалысы болуы мүмкін. Бұл Apache ішкі құрылымдарында және (ол жоқ болса) Apache сервер процесінен getenv() шақыру арқылы ізделеді.
  3. Арнайы пішім бар: %(HTTP:тақырып) мұнда тақырыпкез келген HTTP MIME тақырып атауы болуы мүмкін. Бұл HTTP сұрауында ізделеді. Мысал: %(HTTP:Proxy-Connection) HTTP тақырыбының мәні " Proxy-Connection: ".
  4. Соңғы мәнді анықтау үшін ішкі (URL негізіндегі) ішкі сұрау арқылы жасалған %(LA-U:variable) іздеу сұрауларының арнайы пішімі бар. айнымалы. Мұны API интерфейсінің кейбір фазасында кейінірек анықталған және сол кезеңде қол жетімді емес түрлендірулер үшін айнымалы мәнді пайдаланғыңыз келгенде пайдаланыңыз. Мысалы, сервер контекстінен (httpd.conf файлы) REMOTE_USER айнымалы мәніне сәйкес түрлендіргіңіз келсе, %(LA-U:REMOTE_USER) пайдалануыңыз керек, себебі бұл айнымалы мән өтетін авторизация кезеңдерінде орнатылған. кейін mod_rewrite жұмыс істейтін URL аудару кезеңі. Екінші жағынан, mod_rewrite каталог контекстінде (.htaccess файлы) API түзету фазасы арқылы жұмыс істейтіндіктен және авторизация фазалары осы кезеңнен бұрын келгендіктен, мұнда жай ғана %(REMOTE_USER) пайдалана аласыз.
  5. Арнайы пішім бар: %(LA-F:variable) соңғы мәнді анықтау үшін ішкі (файл атауына негізделген) ішкі сұрауды жасайды. айнымалы. Бұл негізінен жоғарыдағы LA-U пішімімен бірдей.

Қайталанбаған басты бет

Әдетте, басты бет коды физикалық түрде index.html немесе index.php файлында орналасады, бірақ сайт кез келген сұраулар бойынша ашылуы керек: yoursite.ru, yoursite.ru/index.html, www.yoursite.ru және www. .yoursite.ru/index .html. Бірақ іздеу жүйелері үшін бұл төрт түрлі URL мекенжайы! Егер .htaccess файлын дұрыс конфигурацияламасаңыз, іздеу жүйесі өз индексіне төрт бірдей бетті қосады. Бұл сапасыз сайттың белгісі. .htaccess ішіндегі келесі кодты пайдаланып, бұл мәселені болдырмауға болады:

Параметрлер +FollowSymLinks RewriteEngine, RewriteCond %(HTTP_HOST) ^yoursite.ru RewriteRule (.*) http://www.yoursite.ru/$1 RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://www.yoursite.ru/

Барлық қайталанатын беттер негізгі бетке қайта бағыттау кодымен біріктіріледі - http://www.yoursite.ru/.

URL мекенжайының соңында қиғаш сызықсыз қайталанатын беттер

www.yoursite.ru/about және www.yoursite.ru/about/ беттерін индекстеу жағдайын болдырмау үшін келесі кодты енгіземіз:

Қиғаш сызықсыз беттер «қиғаш сызық» беттеріне қайта бағытталады.

RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_URI) !(.*)/$ RewriteRule ^(.*)$ /$1/

Ашудың орнына файлдарды сақтау (жүктеп алу).

Көбісі .rar кеңейтімі бар мұрағатты жүктеп алуға тырысқанда, браузер оны таңбалар жиынтығынан тұратын қарапайым мәтін ретінде ашатынын көрді. Бұл сайт сервері браузерде ашылмауы керек файл түрлерін мәжбүрлеп сақтауға конфигурацияланбағанын білдіреді.

AddType қолданбасы/octet-stream .rar .doc .mov .avi .pdf .xls .mp4

Жіберілген беттерді сығу

SetOutputFilter DEFLATE тақырыбы ETag FileETag Жоқ

Артқы қиғаш сызықты мәжбүрлеп орнату

Келесі код әрқашан сайтыңыздың URL мекенжайына қиғаш сызық қосады, бұл сайт SEO үшін тамаша.

RewriteCond %(REQUEST_URI) /+[^\.]+$ Қайта жазу ережесі ^(.+[^/])$ %(REQUEST_URI)/

FireFox үшін домен аралық қаріпті пайдалану

Кірістірілген қаріптерді пайдаланған кезде Firefox оларды сыртқы сайттардан алуға мүмкіндік бермейді. .htaccess файлына арналған келесі код осы шектеуді айналып өтуге мүмкіндік береді.

#Yourdomain.com сайтын блог мекенжайымен ауыстырыңыз Тақырып жинағы Access-Control-Allow-Origin "http://yourdomain.com"

PHP тілін JavaScript файлдарында орындаңыз

JavaScript кодын әзірлеу кезінде сізге кейде .js файлдарында PHP пайдалану қажет, мысалы дерекқордан деректерді алу үшін.

AddType қолданбасы/x-httpd-php .js AddHandler x-httpd-php5 .js SetHandler қолданбасы/x-httpd-php

robots.txt, sitemap.xml және т.б. файлдарды кеңейтіңіз. домен қалталарына

# Егер сайттың түбірінен, домен қалтасында сұралған файл болса, оны сол жерге қайта бағыттаңыз RewriteCond %(DOCUMENT_ROOT)/domain/%(HTTP_HOST)/root%(REQUEST_URI) -f RewriteRule ^(.*)$ /домен/%(HTTP_HOST )/root/$1 [L]

.htaccess арқылы пайдаланушы агенттерін блоктау

Пайдаланушы агентінің кейбір түрлері серверіңізді қажетсіз сұраулармен жүктеп жатқан мәселеге тап болсаңыз, .htaccess файлына келесі жолдарды қосу арқылы олардан құтылуға болады:

SetEnvIfNoCase User-Agent "^Black Hole" bad_bot SetEnvIfNoCase User-Agent "^Titan" bad_bot SetEnvIfNoCase User-Agent "^WebStripper" bad_bot SetEnvIfNoCase User-Agent "^NetMechanic" bad_bot User-Agent_Chae "SetEnvIfNoCase" -Агент "^EmailCollector" bad_bot SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot SetEnvIfNoCase User-Agent "^WebBandit" bad_bot SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot SetEnvIfNoCase User-Progent "^IfNoCase User-Pro" bad_Cagent "^Agent" Set ck" bad_bot SetEnvIfNoCase User-Agent "^Crescent" bad_bot SetEnvIfNoCase User-Agent "^Wget" bad_bot SetEnvIfNoCase User-Agent "^SiteSnagger" bad_bot SetEnvIfNoCase User-Agent "^ProWebWalker" bad_bot User-Agent-Agent SetEnvIfNoCase "Bad_bot User-Agent^BC" мырза» ^Teleport" bad_bot SetEnvIfNoCase User-Agent "^TeleportPro" bad_bot SetEnvIfNoCase User-Agent "^MIIxpc" bad_bot SetEnvIfNoCase User-Agent "^Telesoft" bad_bot SetEnvIfNoCase User-Agent "^Website Quester SetEnvIfNoCase User-Agent "^Website Quester-Website-Website Quester-I bad^Agent "I bad^bot" SetEnvIfNoCase User-Agent "^moget/2.1" bad_bot SetEnvIfNoCase User-Agent "^WebZip/4.0" bad_bot SetEnvIfNoCase User-Agent "^WebSauger" bad_bot SetEnvIfNoCase User-Agent "^WebCopier" bad_Agents_Enf "Bad_Agents"Netv NoCase User-Agent "^Mister PiX" bad_bot SetEnvIfNoCase User-Agent "^WebAuto" bad_bot SetEnvIfNoCase User-Agent "^TheNomad" bad_bot SetEnvIfNoCase User-Agent "^WWW-Collector-E" bad_bot SetEnvIfNoCase RSS SetEnvIfNoCaseR bad_Af "Bad_bot" User-Agent "^libWeb/clsHTTP" bad_bot SetEnvIfNoCase User-Agent "^asterias" bad_bot SetEnvIfNoCase User-Agent "^httplib" bad_bot SetEnvIfNoCase User-Agent "^turingos" bad_bot SetEnvIfNoCase User-Agent "^Spanner"A bad_CEnvIfNoCase User-Agent "^spanner"A bad_f Setner-bot "^InfoNaviRobot" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Harvest/1.5" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Bullseye/1.0" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Mozilla/4.0 (үйлесімді; Bullseye; Windows 95)" bad_bot SetEnvIfNoCase User-Agent "^Crescent Internet ToolPak HTTP OLE Control v.1.0" bad_bot SetEnvIfNoCase пайдаланушы агенті "^CherryPickerSE/1.0" bad_bot SetEnvIfNoCase User-Agent "^CherryPicker /1.0Case User-Agent "^CherryPicker /1.0 User-Agent SetEnv" WebBandit/3.50" bad_bot SetEnvIfNoCase User-Agent "^NICErsPRO" bad_bot SetEnvIfNoCase User-Agent "^Microsoft URL Control - 5.01.4511" bad_bot SetEnvIfNoCase User-Agent "^DittoSpyder" bad_botCase bad_botCoo пайдаланушы - "^WebmasterWorldForumBot" bad_bot SetEnvIfNoCase пайдаланушы агенті "^SpankBot" bad_bot SetEnvIfNoCase пайдаланушы агенті "^BotALot" bad_bot SetEnvIfNoCase пайдаланушы агенті "^lwp-trivial/1. 34" bad_bot SetEnvIfNoCase User-Agent "^lwp-trivial" bad_bot SetEnvIfNoCase User-Agent "^Wget/1.6" bad_bot SetEnvIfNoCase пайдаланушы агенті "^BunnySlippers" bad_bot SetEnvIfNoCase User-Agent Control "^06.Env. Бақылау" -Microbot ас User-Agent "^URLy Warning" bad_bot SetEnvIfNoCase User-Agent "^Wget/1.5.3" bad_bot SetEnvIfNoCase User-Agent "^LinkWalker" bad_bot SetEnvIfNoCase User-Agent "^cosmos" bad_bot SetEnvIfNoCasemoCasemoGet-EnvIfNoCase "bad_Af" User-Agent "^hloader" bad_bot SetEnvIfNoCase User-Agent "^humanlinks" bad_bot SetEnvIfNoCase User-Agent "^LinkextractorPro" bad_bot SetEnvIfNoCase User-Agent "^Offline Explorer" bad_bot SetEnvIfNoCase User-Agent Haragent User-Agent "^Agentv SetEnvIfNoCase" "^LexiBot" bad_bot SetEnvIfNoCase User-Agent "^Web Image Collector" bad_bot SetEnvIfNoCase User-Agent "^The Intraformant" bad_bot SetEnvIfNoCase User-Agent "^True_Robot/1.0" bad_bot SetEnvIfNoCase^User-Agent^User-Agent^Baddru"Robotase SetEnvIfNoCase User-Agentv" "^BlowFish/1.0" bad_bot SetEnvIfNoCase User-Agent "^JennyBot" bad_bot SetEnvIfNoCase User-Agent "^MIIxpc/4.2" bad_bot SetEnvIfNoCase User-Agent "^BuiltBotTough" bad_bot SetEnvIfNoCase "bad_bot User-Agent^B"bad Case User- Агент "^BackDoorBot/1.0" bad_bot SetEnvIfNoCase User-Agent "^toCrawl/UrlDispatcher" bad_bot SetEnvIfNoCase User-Agent "^WebEnhancer" bad_bot SetEnvIfNoCase User-Agent "^TightTwatBotBotv"Badsiz^I_SetEnvIfNoCase fNoCase пайдаланушы агенті "^VCI WebViewer VCI WebViewer Win32" bad_bot SetEnvIfNoCase пайдаланушы агенті "^VCI" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Szukacz/1.4" bad_bot SetEnvIfNoCase пайдаланушы агенті "^QueryN Metasearch" bad_bot SetEnvIfNoCase деректері bad_bot SetEnvIfNoCase. SetEnvIfNoCase пайдаланушы агенті "^Openfind" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Xenu"s Link Sleuth 1.1c" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Xenu"s" bad_bot SetEnvIfNoCase User-Agent "^Zeus User-Agent "^SetEnvIfNoCase" bad_bot RepoMonkey Bait & Tackle/v1.01" bad_bot SetEnvIfNoCase пайдаланушы-агент "^RepoMonkey" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Zeus 32297 Webster Pro V2.9 Win32" bad_bot SetEnvIfNoCase User-Agent "Bad_Agent" User-Agent Pro bad_Agent "-WebCase" ^EroCrawler" bad_bot SetEnvIfNoCase User-Agent "^LinkScan/8.1a Unix" bad_bot SetEnvIfNoCase User-Agent "^Keyword Density/0.9" bad_bot SetEnvIfNoCase пайдаланушы агенті "^Kenjin Spider" bad_bot Bad_bot SetEnvIfNoCase "badNoC SetEnvIbeh"bad_bot. Тапсырыс беру Рұқсат ету, Рұқсат бермеу Барлығынан Бас тарту env=bad_bot

Тіл бойынша қайта жіберу

RewriteEngine, RewriteCond %(HTTP:Accept-Language) (ru) RewriteRule .* WHERE [L]

Суреттерді басқа сайттардағы сілтемелер арқылы жүктеп алудан қорғау

Оның ішінде REFERER-сіз ауысулар, яғни. мекенжай браузер жолында көрсетілгенде.

RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ WHERE_SEND жүйесінде RewriteEngine

RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ ҚАЙДА_ЖІберу керек.

Белгілі бір сілтемесі бар пайдаланушыларды блоктау

Пайдаланушылардың белгілі бір сайттардан өзіңіздің сайтыңызға өтуін қаламасаңыз, бұны блоктай аласыз.

RewriteCond %(HTTP_REFERER) bannedurl1.com RewriteCond %(HTTP_REFERER) bannedurl2.com RewriteRule жүйесіндегі RewriteEngine .* - [F]

bannedurl1.com және bannedurl2.com тыйым салынған сайттардың мысалдары болып табылады.

PHP жүктеп салу файлының өлшемін, сұраныстың максималды өлшемін және сценарийді орындаудың максималды уақытын шектеу

Жүктеп алу файл өлшемі:

Php_мәні жүктеп салу_макс._файл өлшемі 15М

PHP-де жүктеп салуға арналған максималды сұрау өлшемі:

Php_мәні post_max_size 10M

Сценарийдің орындалу уақыты:

Php_мәні максимум_орындалу_уақыты 240

Скрипттің енгізілген деректерді талдау уақыты:

Php_мәні максималды енгізу_уақыты 180

IE үшін шығыс режимін көрсетіңіз

X-UA-үйлесімді тақырыпты орнату:

Тақырып жинағы X-UA-үйлесімді "IE=Edge"

Параметр өзгереді: қабылдау-кодтау

Іздеу жүйесін оңтайландыру және бетті жүктеу уақытын азайту үшін Google Vary: Accept-Encoding тақырыбын орнатуды ұсынады.

HTTP/1.1 Vary жауап тақырыбы серверге кэштелген ресурсты Vary ішінде көрсетілген тақырыптар сұрау тақырыптарына сәйкес келсе ғана тексерусіз пайдалануға болатынын көрсетуге мүмкіндік береді. Мәндер: Accept-Coding, Host, User-Agent, Accept-Language.

Тақырып қосымшасы Vary: Accept-Coding

Барлық домендерге арналған жалпы кескін файлы (жаһандық бүркеншік аттар)

Бүркеншік ат /javascripts /usr/share/javascript/ Опциялар FollowSymLinks MultiViewsЖалпы файлды орналастырыңыз, мысалы, icon.png /usr/share/javascript/ /etc/javascript-common/javascript-common.conf файлында және жолды қосыңыз: /apple-touch-icon. -precomposed.png /usr/ share/javascript/icon.png

.doc жүктеп алған кезде .docx файлдары браузерде түсініксіз кодтаумен ашылады.

Егер сіз .doc, .docx файлдарын түсініксіз кодтауы бар шолғышта ашсаңыз және файлдың сақталғанын және сол жақ батырманы басқанда ашылмағанын қаласаңыз, онда .htaccess ішінде жазуыңыз керек:

AddType қолданбасы/құжатты мәжбүрлеп жүктеп алу AddType қолданбасы/docx AddType қолданбасын мәжбүрлеп жүктеп алу/xls AddType қолданбасын мәжбүрлеп жүктеп алу/xlsx-ті мәжбүрлеп жүктеп алу

Қауіпсіз https қосылымына қайта бағыттаңыз

Егер сіз https пайдалансаңыз және барлық пайдаланушылардың оған қайта бағытталуын қаласаңыз, келесі код сізге көмектеседі:

RewriteEngine RewriteCond %(HTTPS) !RewriteRule бойынша (.*) https://%(HTTP_HOST)%(REQUEST_URI)

Cookie файлы htaccess арқылы орнатылған болса, қатынасу

Егер сіздің сайттағы логиніңіз әкімші болса және ол логин аты бар cookie файлында орнатылған болса, бейтаныс адамдар үшін кез келген каталогқа кіруді оңай блоктай аласыз. Ол үшін осы каталогта (қалтада) келесі мазмұны бар .htaccess файлын жасаңыз:

RewriteEngine қосулы RewriteCond %(HTTP_COOKIE) !login=admin RewriteRule .* http://%(HTTP_HOST)/

Дәл осы принципті қолдана отырып, әкімшіден басқа барлық адамдар үшін профилактикалық қызмет көрсету үшін сайтты жабуға болады.

http 304 жауабын орындау үшін "If-Modified-Since" және "If-None-Match" тақырыптарына қол жеткізіңіз

Егер PHP Apache модулі ретінде орнатылмаған болса, «If-Modified-Since» және «If-None-Match» тақырыптарына қол жеткізу үшін веб-сайттың түбірлік каталогына келесі .htaccess файлын орналастыру керек:

RewriteEngine On RewriteRule .* - RewriteRule .* -

Осыдан кейін қажетті тақырыптар $_SERVER["HTTP_IF_MODIFIED_SINCE"] және $_SERVER["HTTP_IF_NONE_MATCH"] ретінде қолжетімді болады.

«Егер-Өзгертілгеннен бері» және «Егер-Ешқандай-Сәйкестік» тақырыптары веб-сервердің бұған дейінгі сұрауларында «Соңғы өзгертілген» тақырыбын алмаса, шолғыш жібермейтінін атап өткен жөн. бет. Бұған қоса, веб-бағдарламада әдепкі параметрлері бар сеанстарды пайдаланған кезде, көрсетілген тақырыптар да шолғыш арқылы жіберілмейді. Браузердің бұл әрекетін болдырмау үшін сеансты бастамас бұрын, "private_no_expire" параметрін аргумент ретінде жіберіп, session_cache_limiter функциясын орындауыңыз керек:

Сеанс_кэш_шектеушісі("жеке_өткізу_жоқ"); session_start();

Сонымен қатар, тақырып бойынша қосымша ақпаратты табуға болады:

www.egoroff.spb.ru - Қайта бағыттау мысалдары
htaccess.net.ru - htaccess туралы қосымша ақпарат.

.htaccess файлы сервер конфигурация файлдарын өзгертпей-ақ веб-сайт конфигурацияларын орнатуға мүмкіндік береді. Файл атауының басындағы нүкте файлдың жасырын екенін білдіреді.

.htaccess файлын мәтіндік редакторда жасауға болады, содан кейін ftp клиенті арқылы сайтқа жүктеп салуға болады.

Ескерту: .htaccess файл атауында ешқандай қосымша сөздер немесе кеңейтімдер жоқ.

Сонымен қатар, мұндай файлдың орны да үлкен маңызға ие. Бұл файлдағы конфигурациялар файлдың өзі орналасқан каталогтың бүкіл мазмұнына, сондай-ақ оның барлық ішкі каталогтарына әсер етеді.

Файл мүмкіндіктері.htaccess

.htaccess беті керемет пайдалы және сіздің сайтыңызды айтарлықтай жақсарта алатын болса да, оны пайдалану кезінде есте сақтау керек екі нәрсе бар.

Біріншіден, бұл жылдамдық. .htaccess беті сервер жылдамдығын аздап баяулатуы мүмкін; көп жағдайда дерлік байқалмайды. Бұл беттің орналасуына байланысты: айтылғандай, .htaccess файлы оның каталогындағы беттер мен ішкі каталогтарға әсер етеді. Бет жүктелген сайын сервер ең жоғарғы каталогқа немесе .htaccess файлына жеткенше оның каталогын, сонымен қатар оның үстіндегі әрбір каталогты тексереді. Бұл процесс AllowOverride параметрі жүйеде мұндай файлдардың бар-жоғына қарамастан .htaccess файлдарын пайдалануға мүмкіндік бергенше жалғасады.

Екіншіден, бұл қауіпсіздік. .htaccess файлына кіру әдеттегі Apache конфигурация файлына қарағанда әлдеқайда оңай және оған енгізілген өзгертулер серверді қайта жүктеуді қажет етпей-ақ бірден белсендіріледі. Сондықтан .htaccess файлына өзгертулер енгізу құқығы бар пайдаланушылар сервердің өзіне елеулі әсер етуі мүмкін. .htaccess файлына қосылған кез келген директиваның Apache конфигурациясына тікелей қосылған директиваның әсері бар.

Файлды қалай қосуға болады.htaccess?

Сервер параметрлеріне қатынасу арқылы .htaccess файлдарына стандартты торап конфигурацияларын қайта анықтауға рұқсат беру үшін Apache конфигурацияларын өңдеуге болады. Әдепкі apache2 хост конфигурация файлын ашыңыз.

Ескерту: Бұл кезеңде сізге sudo артықшылықтары қажет болады.

sudo nano /etc/apache2/sites-available/default

Файл ашық кезде келесі бөлімді тауып, AllowOverride директивасының мәнін Ешбірден Барлығына өзгертіңіз. Бөлім келесідей болуы керек:


Опциялар индекстері FollowSymLinks MultiViews
AllowOverride All
Тапсырыс беруге рұқсат беру, бас тарту
барлығынан рұқсат

Файлды сақтаңыз және жабыңыз, содан кейін apache файлын қайта іске қосыңыз.

sudo қызметін apache2 қайта іске қосыңыз

Жасауфайл.htaccess

Жоғарыда айтылғандай, .htaccess файлын мәтіндік редактордың көмегімен жасауға болады, содан кейін ftp клиенті арқылы сайтқа жүктеп салуға болады (.htaccess файлының атауында қосымша сөздер немесе кеңейтімдер болмауы керек).

Немесе мұндай файлды терминал арқылы жасауға болады; Мұны істеу үшін example.com сайтын сайт атауымен ауыстырып, келесі пәрменді пайдаланыңыз.

sudo nano /var/www/example.com/.htaccess

.htaccess қолданбасының кең таралған түрлері

1. Mod_Қайта жазу

Файлдың ең пайдалы аспектілерінің бірі. .htaccess файл кеңістігін URL мекенжайлары мен веб-беттерді сайтта көрсету жолын анықтау/өзгерту үшін пайдалануға болады. Бұл қалай жасалатыны туралы толық ақпаратты мына сілтемеден табуға болады.

2. Аутентификация

.htaccess файлы стандартты apache2.conf конфигурация файлы сияқты көп құқықтарды қажет етпесе де, оны торап қауіпсіздігіне тиімді өзгертулер енгізу үшін пайдалануға болады. Өйткені, .htaccess веб-беттің белгілі бір бөлімдеріне кіру үшін құпия сөзді сұрауға мүмкіндік береді. .htaccess құпия сөздері .htpasswd деп аталатын файлда сақталады.

Ескерту: Қауіпсіздік мақсатында мұндай файлды сайт каталогында сақтау қатаң ұсынылмайды.

.htpasswd файлында сайттың қауіпсіз бөлігіне кіруге рұқсат етілген барлық пайдаланушылардың аттары мен құпия сөздерін көрсету керек.

Пайдаланушы аттары мен құпия сөздер файлға user_name:encrypted_password жұбы ретінде енгізіледі. Мысалы, best_user деп аталатын пайдаланушының құпия сөзі керемет болса, мұндай жұп «best_user:VtweQU73iyETM» сияқты көрінуі мүмкін.

Ескерту: Әрбір жұп бөлек жолға енгізіледі. .htpasswd файлында қажетінше көптеген жолдар болуы мүмкін.

.htpasswd жасағаннан кейін аутентификация мүмкіндігін қосу үшін .htaccess файлына келесі кодты қосыңыз:

AuthUserFile /usr/local/username/safedirectory/.htpasswd
AuthGroupFile /dev/null
AuthName Құпия сөзді енгізіңіз
AuthType Basic
Жарамды пайдаланушыны талап етеді

Түзу AuthUserFile.htpasswd файлының жолын анықтайды.

Түзу AuthGroupFile location.htgroup анықтайды. Қазіргі уақытта мұндай файл жоқ болғандықтан, оны /dev/null мекенжайында қалдырыңыз.

Түзу AuthNameқұпия сөз сұрауында көрсетілетін мәтінді қамтиды (сіз кез келген мәтінді енгізе аласыз).

AuthTypeқұпия сөздерді тексеру үшін пайдаланылатын аутентификация түріне жатады. Құпия сөздер HTTP арқылы тексеріледі және Basic кілт сөзін өзгерту мүмкін емес.

Түзу талап етужарамды-пайдаланушы.htaccess файлына сайттың құпия сөзбен қорғалған аймақтарына бірнеше адам кіруі керек екенін айтады. Сайттың шектелген бөліктеріне рұқсаты бар нақты адамды көрсету қажет болса, Жарамды пайдаланушыны талап ету жолының орнына Пайдаланушыны талап ету жолы пайдаланылады. Қолданушының аты.

3. Теңшелетін қате беттері

.htaccess файлы сайтыңыз үшін пайдаланушы қате беттерін жасауға мүмкіндік береді. Ең жиі кездесетін қателердің кейбірі:

  • 400 қате сұрау
  • 401 Авторизация қажет
  • 403 Тыйым салынған бет
  • 404 Файл табылмады
  • 500 Ішкі қате

Теңшелетін қате беттері торап беттерін ыңғайлы ету және торап келушісіне әдепкі сервер қате беттерінен гөрі егжей-тегжейлі ақпарат беру мақсатында жасалады.

Мысалы, сіз 404 бетін жасай аласыз (өз таңдауыңыз бойынша кез келген қате бетін жасап көріңіз).

Қате бетін жасап, жүктегеннен кейін оның .htaccess файлындағы орнын көрсетіңіз:

ErrorDocument 404 /new404.html

Есте сақта: Apache сайттың түбірлік каталогында 404 бетін іздейді. Кез келген ішкі каталогқа жаңа 404 қате бетін орналастырған кезде, сол ішкі каталогты жолға қосуды ұмытпаңыз, мысалы:

ErrorDocument 404 /error_pages/new404.html

4. MIME түрлері

Сайтта сервер көрсету үшін конфигурацияланбаған кейбір қолданба файлдары орналасқан жағдайларда, Apache серверіне арналған MIME түрлерін .htaccess файлына келесі код арқылы қосуға болады:

AddType аудио/mp4a-latm .m4a

Қолданбаны және файл кеңейтімін қолдағыңыз келетін MIME түріне ауыстыруды ұмытпаңыз.

5.SSI

Server Side Includes технологиясы веб-сайтыңыздағы тамаша уақытты үнемдейді. SSI пайдаланудың ең кең тараған әдістерінің бірі - әрбір бетті жеке жаңартусыз (мысалы, беттің төменгі жағындағы дәйексөзді өзгерту) белгілі бір деректер блогын қамтитын беттердің үлкен санын жаңарту.

SSI қосу үшін .htaccess ішіне келесі кодты енгізіңіз:

AddType мәтіні/html .shtml
AddHandler server-parsed.shtml

Бұл жолдар .htaccess бағдарламасына .shtml файлдарының жарамды екенін айтады, ал екінші жол серверге SSI пәрмендері үшін .shtml деп аяқталатын барлық файлдарды тексеру керектігін айтады.

Дегенмен, егер серверде .html беттерінің көп саны болса, олардың кеңейтімі .shtml-ге өзгерту үшін көп уақытты алады, оларды SSI пәрмендері үшін тексеру үшін басқа тактиканы қолдануға болады. Ол үшін XBitHack параметрі пайдаланылады.

Бұл жолды .htaccess файлына қосу Apache жүйесін барлық html файлдарын Server Side Includes үшін тиісті рұқсаттары бар тексеруге мәжбүр етеді.

Бетке XBitHack пайдалануына рұқсат беру үшін мынаны енгізіңіз:

chmod +x бет_атауы.html

Нәтижелер

Бұл нұсқаулық тек .htaccess бетінің негізгі функцияларын қамтиды, бірақ бұл сайтпен жұмысты әлдеқайда икемді етеді. .htaccess файлының мүмкіндіктері туралы сұрақтарыңыз немесе толықтыруларыңыз болса, түсініктеме қалдырыңыз.

Тегтер: ,