лНДСКЭ Apache mod_rewrite
пЕГЧЛЕ
╚цКЮБМНЕ ОПЕХЛСЫЕЯРБН mod_rewrite═≈ МЮЯРПЮХБЮЕЛНЯРЭ Х═ЦХАЙНЯРЭ Sendmail. нАПЮРМЮЪ ЯРНПНМЮ mod_rewrite═≈ МЮЯРПЮХБЮЕЛНЯРЭ Х═ЦХАЙНЯРЭ Sendmail╩.
-- Brian Behlendorf
Apache Group
╚мЕЯЛНРПЪ МЮ═РНММШ ОПХЛЕПНБ Х═ДНЙСЛЕМРЮЖХЧ, mod_rewrite ЩРН бСДС. вЕПРНБЯЙХ ЙК╦БШИ бСДС, МН═БЯЕ-РЮЙХ бСДС.╩
-- Brian Moore
bem@news.cmc.net
дНАПН ОНФЮКНБЮРЭ Б═ЛХП mod_rewrite, ЬБЕИЖЮПЯЙХИ МНФ URL ОПЕНАПЮГНБЮМХИ!
дЮММШИ ЛНДСКЭ ОПЕДЯРЮБКЪЕР ЯНАНИ НЯМНБЮММШИ МЮ═ОПЮБХКЮУ ЛЕУЮМХГЛ (ЯХМРЮЙЯХВЕЯЙХИ ЮМЮКХГЮРНП Я═ОПХЛЕМЕМХЕЛ ПЕЦСКЪПМШУ БШПЮФЕМХИ), БШОНКМЪЧЫХИ URL ОПЕНАПЮГНБЮМХЪ МЮ═КЕРС. лНДСКЭ ОНДДЕПФХБЮЕР МЕНЦПЮМХВЕММНЕ ЙНКХВЕЯРБН ОПЮБХК Х═ ЯБЪГЮММШУ Я═ЙЮФДШЛ ОПЮБХКНЛ СЯКНБХИ, ПЕЮКХГСЪ ДЕИЯРБХРЕКЭМН ЦХАЙХИ Х═ЛНЫМШИ ЛЕУЮМХГЛ СОПЮБКЕМХЪ URL. URL ОПЕНАПЮГНБЮМХЪ ЛНЦСР ХЯОНКЭГНБЮРЭ ПЮГМШЕ ХЯРНВМХЙХ ДЮММШУ, МЮОПХЛЕП ОЕПЕЛЕММШЕ ЯЕПБЕПЮ, ОЕПЕЛЕММШЕ НЙПСФЕМХЪ, HTTP ГЮЦНКНБЙХ, БПЕЛЪ Х═ДЮФЕ ГЮОПНЯШ Й═БМЕЬМХЛ АЮГЮЛ ДЮММШУ Б═ ПЮГМШУ ТНПЛЮРЮУ,═≈ ДКЪ ОНКСВЕМХЪ URL МСФМНЦН БЮЛ БХДЮ.
щРНР ЛНДСКЭ НОЕПХПСЕР Я═ОНКМШЛХ URL (БЙКЧВЮЪ
path-info) Х═Б═ЙНМРЕЙЯРЕ ЯЕПБЕПЮ
(httpd.conf
) Х═Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ
(.htaccess
) Х═ДЮФЕ ЛНФЕР ЦЕМЕПХПНБЮРЭ ВЮЯРХ ЯРПНЙХ ГЮОПНЯЮ
Б═ЙЮВЕЯРБЕ ПЕГСКЭРЮРЮ. оПЕНАПЮГНБЮММШИ ПЕГСКЭРЮР ЛНФЕР ОПХБНДХРЭ Й═БМСРПЕММЕИ
НАПЮАНРЙЕ, БМЕЬМЕЛС ОЕПЕМЮОПЮБКЕМХЧ ГЮОПНЯЮ ХКХ ДЮФЕ Й═ОПНУНФДЕМХЧ
ВЕПЕГ БМСРПЕММХИ ОПНЙЯХ ЛНДСКЭ.
мН, БЯЪ ЩРЮ ТСМЙЖХНМЮКЭМНЯРЭ Х═ЦХАЙНЯРЭ ХЛЕЕР ЯБНИ МЕДНЯРЮРНЙ═≈ ЯКНФМНЯРЭ. оНЩРНЛС, МЕ═ДСЛЮИРЕ ВРН БШ═ОНИЛЕРЕ ПЮАНРС ЛНДСКЪ ГЮ═НДХМ ДЕМЭ.
щРНР ЛНДСКЭ АШК ОПХДСЛЮМ Х═МЮОХЯЮМ Б═ЮОПЕКЕ 1996═Х═ЩЙЯЙКЧГХБМН ОНДЮПЕМ The Apache Group Б═ХЧКЕ 1997═
Ralf S.
Engelschall
rse@engelschall.com
www.engelschall.com
дХПЕЙРХБШ
- RewriteBase
- RewriteCond
- RewriteEngine
- RewriteLock
- RewriteLog
- RewriteLogLevel
- RewriteMap
- RewriteOptions
- RewriteRule
рЕЛШ
бМСРПЕММХЕ ОПНЖЕЯЯШ
бМСРПЕММХЕ ОПНЖЕЯЯШ Б═ЩРНЛ ЛНДСКЕ НВЕМЭ ЯКНФМШ, НДМЮЙН, ХУ═МСФМН НАЗЪЯМХРЭ УНРЪ АШ═ПЮГ, Х═ДЮФЕ НАШВМНЛС ОНКЭГНБЮРЕКЧ, БН═ХГАЕФЮМХЕ ПЮЯОПНЯРПЮМ╦ММШУ НЬХАНЙ Х═ПЮЯЙПШРХЪ БЯЕИ ЕЦН ТСМЙЖХНМЮКЭМНЯРХ.
тЮГШ API
дКЪ МЮВЮКЮ, МСФМН ОПНЯРН ОНМЪРЭ, ВРН НАПЮАНРЙС ЙЮЙНЦН-КХАН
HTTP ГЮОПНЯЮ, ЯЕПБЕП Apache ДЕКЮЕР Б═ТЮГЮУ. оЕПЕУБЮРВХЙ ЩРХУ
ТЮГ НАЕЯОЕВХБЮЕРЯЪ Apache API. Mod_rewrite ХЯОНКЭГСЕР 2═ХГ═ ЩРХУ ОЕПЕУБЮРВХЙНБ: РПЮМЯКЪРНП ХГ═URL Б═ХЛЪ ТЮИКЮ ХЯОНКЭГСЕЛШИ
ОНЯКЕ ЯВХРШБЮМХЪ HTTP ГЮОПНЯЮ, МН═ДН═МЮВЮКЮ
ЙЮЙНИ-КХАН ЮБРНПХГЮЖХХ Х═ОЕПЕУБЮРВХЙ ЮДПЕЯМНИ ОПХБЪГЙХ МЮВХМЮЧЫХИ ПЮАНРЮРЭ
ОНЯКЕ ТЮГ ЮБРНПХГЮЖХХ Х═ЯВХРШБЮМХЪ ЙНМТХЦСПЮЖХНММШУ ТЮИКНБ ЙЮРЮКНЦЮ
(.htaccess
), МН═ДН═ ЮЙРХБХГЮЖХХ НАПЮАНРВХЙЮ ЯНДЕПФЮМХЪ.
оНЩРНЛС, ОНЯКЕ ОНЯРСОКЕМХЪ ГЮОПНЯЮ Х═НОПЕДЕКЕМХЪ Apache'ЕЛ ЯННРБЕРЯРБСЧЫЕЦН ЯЕПБЕПЮ (ХКХ БХПРСЮКЭМНЦН ЯЕПБЕПЮ) ЛЕУЮМХГЛ ОПЕНАПЮГНБЮМХИ МЮВХМЮЕР НАПЮАНРЙС БЯЕУ ДХПЕЙРХБ mod_rewrite ХГ═ ЙНМТХЦСПЮЖХНММНЦН ТЮИКЮ ЯЕПБЕПЮ Б═ТЮГЕ РПЮМЯКЪЖХХ ХГ═URL Б═ХЛЪ ТЮИКЮ. мЕЯЙНКЭЙН ЬЮЦНБ ЯОСЯРЪ, ЙНЦДЮ МЮУНДЪРЯЪ ЙЮРЮКНЦХ Я═ЙНМЕВМШЛХ ДЮММШЛХ, ЙНМТХЦСПЮЖХНММШЕ ДХПЕЙРХБШ mod_rewrite ГЮОСЯЙЮЧРЯЪ Б═ТЮГЕ ЮДПЕЯМНИ ОПХБЪГЙХ. б═НАНХУ ЩРХУ ЯХРСЮЖХЪУ mod_rewrite ОПЕНАПЮГСЕР URL, КХАН Б═МНБШЕ URL, КХАН Б═ХЛЕМЮ ТЮИКНБ, УНРЪ ЛЕФДС МХЛХ МЕР НАЗЕЙРХБМШУ ПЮГКХВХИ. оПХ ЯНГДЮМХХ API, МЕ═ОПЕДОНКЮЦЮКНЯЭ ЕЦН ХЯОНКЭГНБЮМХЕ РЮЙХЛ НАПЮГНЛ, НДМЮЙН ВРН ЙЮЯЮЕРЯЪ Apache 1.x ЩРН ЕДХМЯРБЕММШИ БНГЛНФМШИ ЯОНЯНА ПЮАНРШ mod_rewrite. вРНАШ БМЕЯРХ АНКЭЬЕ ЪЯМНЯРХ ГЮОНЛМХРЕ 2═БЕЫХ:
- уНРЪ mod_rewrite Х═ОПЕНАПЮГСЕР URL Б═URL, URL Б═ ХЛЕМЮ ТЮИКНБ Х═ДЮФЕ ХЛЕМЮ ТЮИКНБ Б═ХЛЕМЮ ТЮИКНБ, Б═МЮЯРНЪЫХИ ЛНЛЕМР API ОПЕДНЯРЮБКЪЕР РНКЭЙН ОЕПЕУБЮРВХЙ ДКЪ ОПЕНАПЮГНБЮМХЪ URL Б═ХЛЪ ТЮИКЮ. бН═2-Л Apache АСДСР ДНАЮБКЕМШ 2═НРЯСРЯРБСЧЫХУ ОЕПЕУБЮРВХЙЮ ДКЪ РНЦН, ВРНАШ ЯДЕКЮРЭ ЩРНР ОПНЖЕЯЯ АНКЕЕ КНЦХВМШЛ. нДМЮЙН ЩРН МХЙЮЙ МЕ═БКХЪЕР МЮ═ОНКЭГНБЮРЕКЪ,═≈ ОПНЯРН ЩРНР ТЮЙР МЮДН ГЮОНЛМХРЭ: Apache Б═ОЕПЕУБЮРВХЙЕ URL ХЛЪ ТЮИКЮ ДЕКЮЕР АНКЭЬЕ МЕФЕКХ ВЕЛ ЩРН ОНДПЮГСЛЕБЮЕРЯЪ Б═API.
-
аЕЯОНДНАМШИ mod_rewrite ОПНДЕКШБЮЕР URL ОПЕНАПЮГНБЮМХЪ Х═Б═ ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ, Р.Е. Б═ТЮИКЮУ
.htaccess
, УНРЪ НМХ Х═НАПЮАЮРШБЮЧРЯЪ МЮЛМНЦН ОНГФЕ РПЮМЯКЪЖХХ URL Б═ХЛЕМЮ ТЮИКНБ. рЮЙ ДНКФМН АШРЭ, ОНРНЛС ВРН.htaccess
ТЮИКШ МЮУНДЪРЯЪ Б═ТЮИКНБНИ ЯХЯРЕЛЕ, Х═ОНЩРНЛС НАПЮАНРЙЮ СФЕ ДНЬКЮ ДН═ЩРНИ ЯРЮДХХ. дПСЦХЛХ ЯКНБЮЛХ: яНЦКЮЯМН ТЮГЮЛ API,═≈ Б═ЩРН БПЕЛЪ СФЕ ЯКХЬЙНЛ ОНГДМН СОПЮБКЪРЭ URL. вРНАШ ПЕЬХРЭ ОПНАКЕЛС ЙСПХЖШ Х═ЪИЖЮ, mod_rewrite ХЯОНКЭГСЕР УХРПНЯРЭ: ЙНЦДЮ БШ═ ЛЮМХОСКХПСЕРЕ URL/ХЛЕМЕЛ ТЮИКЮ Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ, mod_rewrite ЯМЮВЮКЮ ОПЕНАПЮГСЕР ХЛЪ ТЮИКЮ НАПЮРМН, Й═ЯННРБЕРЯРБСЧЫЕЛС ЕЛС URL (ВРН НАШВМН МЕБНГЛНФМН, НДМЮЙН, ЯЛНРПХРЕ ДХПЕЙРХБСRewriteBase
ВСРЭ МХФЕ, ЦДЕ МЮОХЯЮМН ЙЮЙ ЩРН ЯДЕКЮРЭ) Х═ГЮРЕЛ ХМХЖХХПСЕР МНБШИ БМСРПЕММХИ ОНДГЮОПНЯ Я═ЩРХЛ МНБШЛ URL. щРН ОЕПЕГЮОСЯЙЮЕР ОПНЖЕЯЯ НАПЮАНРЙХ ТЮГ API.х═ЯМНБЮ mod_rewrite СОНПМН ОШРЮЕРЯЪ ЯДЕКЮРЭ ЩРНР ЯКНФМШИ ЬЮЦ ОНКМНЯРЭЧ ОПНГПЮВМШЛ ДКЪ ОНКЭГНБЮРЕКЪ, НДМЮЙН ГДЕЯЭ БЮЛ ЯКЕДСЕР ГЮОНЛМХРЭ: Б═РН═БПЕЛЪ ЙЮЙ ЛЮМХОСКЪЖХХ Я═URL ЙНМРЕЙЯРЕ ЯЕПБЕПЮ ДЕИЯРБХРЕКЭМН АШЯРПШ Х═ЩТТЕЙРХБМШ, ЛЮМХОСКЪЖХХ Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ ЛЕДКЕММШ Х═МЕЩТТЕЙРХБМШ ХГ-ГЮ ОПНАКЕЛШ ЙСПХЖШ Х═ЪИЖЮ. нДМЮЙН, Я═ДПСЦНИ ЯРНПНМШ ЩРН ЕДХМЯРБЕММШИ БНГЛНФМШИ ОСРЭ ПЮАНРШ mod_rewrite (КНЙЮКЭМН НЦПЮМХВЕММШИ) ДКЪ URL ОПЕНАПЮГНБЮМХИ, ДНЯРСОМШИ НАШВМНЛС ОНКЭГНБЮРЕКЧ.
мЕ═ГЮАШБЮИРЕ 2═ЩРХ БЕЫХ!
нАПЮАНРЙЮ МЮАНПНБ ОПЮБХК
гЮОСЯЙЮЪЯЭ Б═ЩРХУ ДБСУ ТЮГЮУ API, mod_rewrite ЯВХРШБЮЕР ЙНМТХЦСПЮЖХНММШЕ МЮАНПШ ОПЮБХК ХГ═ЯБНЕИ ЙНМТХЦСПЮЖХНММНИ ЯРПСЙРСПШ (ЯНГДЮБЮЕЛНИ КХАН НДХМ ПЮГ ОПХ ГЮОСЯЙЕ ЯЕПБЕПЮ,═≈ ДКЪ ЙНМРЕЙЯРЮ ЯЕПБЕПЮ, КХАН ЙЮФДШИ ПЮГ ОПХ НАУНДЕ ЪДПНЛ Apache ЙЮРЮКНЦНБ,═≈ ДКЪ ЙНМРЕЙЯРЮ ЙЮРЮКНЦЮ). гЮРЕЛ ГЮОСЯЙЮЕРЯЪ ЛЕУЮМХГЛ URL ОПЕНАПЮГНБЮМХИ Я═СФЕ ХЛЕЧЫХЛЯЪ МЮАНПНЛ ОПЮБХК (ОПЮБХКН(Ю) БЛЕЯРЕ ЯН═ЯБНХЛХ СЯКНБХЪЛХ). тСМЙЖХНМХПНБЮМХЕ ЯЮЛНЦН ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ Б═РНВМНЯРХ НДХМЮЙНБН ДКЪ НАНХУ ЙНМРЕЙЯРНБ ЙНМТХЦСПЮЖХХ. пЮГКХВЮЧРЯЪ РНКЭЙН ЙНМЕВМШЕ ПЕГСКЭРШ НАПЮАНРЙХ.
оНПЪДНЙ ОПЮБХК Б═МЮАНПЕ БЮФЕМ ОНРНЛС ВРН ЛЕУЮМХГЛ ОПЕНАПЮГНБЮМХИ
НАПЮАЮРШБЮЕР ХУ═Б═ЯОЕЖХЮКЭМНЛ (Х МЕ═НВЕМЭ
НВЕБХДМНЛ) ОНПЪДЙЕ. бНР ЩРН ОПЮБХКН: лЕУЮМХГЛ ОПЕНАПЮГНБЮМХИ ОПНЯЛЮРПХБЮЕР
БЕЯЭ МЮАНП ОПЮБХК ЯРПНВЙЮ ГЮ═ЯРПНВЙНИ (RewriteRule
ДХПЕЙРХБШ) Х═ ЙНЦДЮ МЮУНДХРЯЪ ЯННРБЕРЯРБХЕ ЙНМЙПЕРМНЛС ОПЮБХКС ОПНХГБНДХРЯЪ ОПНЯЛНРП
ЯННРБЕРЯРБСЧЫХУ ЩРНЛС ОПЮБХКС СЯКНБХИ (RewriteCond
ДХПЕЙРХБШ). оН═ХЯРНПХВЕЯЙХЛ ОПХВХМЮЛ СЯКНБХЪ МЮУНДЪРЯЪ ОЕПЕД
ОПЮБХКЮЛХ, Х═ОНЩРНЛС ОНЯКЕДНБЮРЕКЭМНЯРЭ БШОНКМЕМХЪ ЙНЛЮМД МЕЛМНЦН АНКЕЕ ДКХММЮЪ. яЛ.
ПХЯ. 1═ДКЪ АНКЕЕ ОНДПНАМНИ ХМТНПЛЮЖХХ.
пХЯСМНЙ 1:оНЯКЕДНБЮРЕКЭМНЯРЭ БШОНКМЕМХЪ ЙНЛЮД ОПХ НАПЮАНРЙЕ МЮАНПЮ ОПЮБХК
йЮЙ БШ═ЛНФЕРЕ БХДЕРЭ, ЯМЮВЮКЮ URL ЯПЮБМХБЮЕРЯЪ Я═ ьЮАКНМ ДКЪ ЙЮФДНЦН ХГ═ОПЮБХК. оПХ МЕСДЮВЕ mod_rewrite ЯПЮГС ФЕ═НЯРЮМЮБКХБЮЕР НАПЮАНРЙС ЩРНЦН ОПЮБХКЮ Х═ОПНДНКФЮЕР ПЮАНРС, ХЯОНКЭГСЪ ЯКЕДСЧЫЕЕ ОПЮБХКН. еЯКХ ьЮАКНМ ЯНБОЮДЮЕР, mod_rewrite ХЫЕР ЯННРБЕРЯРБСЧЫХЕ ЩРНЛС ОПЮБХКС СЯКНБХЪ. еЯКХ ХУ═МЕР, НМ═ ОПНЯРН ГЮЛЕМЪЕР URL МНБНИ БЕКХВХМНИ ОНКСВЕММНИ ХГ═ЯРПНЙХ оНДЯРЮМНБЙЮ Х═ОПНДНКФЮЕР ДЮКЭЬЕ НАПЮАЮРШБЮРЭ ОПЮБХКЮ. нДМЮЙН ЕЯКХ ЯСЫЕЯРБСЧР СЯКНБХЪ, ГЮОСЯЙЮЕРЯЪ БМСРПЕММХИ ЖХЙК ДКЪ ХУ═НАПЮАНРЙХ Б═РНЛ ОНПЪДЙЕ Б═ЙНРНПНЛ НМХ ОЕПЕВХЯКЕМШ. дКЪ СЯКНБХИ ЩРЮ КНЦХЙЮ ДПСЦЮЪ: ЛШ═МЕ═ЯПЮБМХБЮЕЛ URL МЮ═ЯННРБЕРЯРБХЕ ЙЮЙНЛС-КХАН ЬЮАКНМС. бЛЕЯРН ЩРНЦН ЛШ═ЯМЮВЮКЮ ЯНГДЮЕЛ ЯРПНЙС яПЮБМХБЮЕЛЮЪяРПНЙЮ ДНОНКМЪЪ Е╦═ОЕПЕЛЕММШЛХ, НАПЮРМШЛХ ЯЯШКЙЮЛХ, ГЮОПНЯЮЛХ Б═АЮГШ ДЮММШУ, Х═Р.Д. Х═ГЮРЕЛ ОШРЮЕЛЯЪ ОПНБЕПЪРЭ МЮ═ЯННРБЕРЯРБХЕ Я═сЯКНБХЕ. еЯКХ ЬЮАКНМ МЕ═ЯННРБЕРЯРБСЕР, БЕЯЭ МЮАНП СЯКНБХИ Х═ЯННРБЕРЯРБСЧЫХУ ОПЮБХК ЯВХРЮЕРЯЪ МЕЯННРБЕРЯРБСЧЫХЛ СЯКНБХЧ. еЯКХ ЕЯРЭ ЯННРБЕРЯРБХЕ ЬЮАКНМС, Б═ЩРНЛ ЯКСВЮЕ ОПНХГБНДХРЯЪ НАПЮАНРЙЮ ЯКЕДСЧЫЕЦН СЯКНБХЪ ДН═РЕУ ОНП ОНЙЮ НМХ АСДСР МЕ═ ХЯВЕПОЮМШ. еЯКХ БЯЕ СЯКНБХЪ ЯНБОЮДЮЧР, ОПНЖЕЯЯ НАПЮАНРЙХ ОПНДНКФЮЕРЯЪ Я═ХЯОНКЭГНБЮМХЕЛ ДКЪ URL ОНДЯРЮМНБЙХ ДЮММШУ ХГ═ОНКЪ оНДЯРЮМНБЙЮ.
щЙПЮМХПНБЮМХЕ ЯОЕЖХЮКЭМШУ ЯХЛБНКНБ
вРН ЙЮЯЮЕРЯЪ Apache 1.3.20, ЯОЕЖХЮКЭМШЕ ЯХЛБНКШ Б═ яПЮБМХБЮЕЛЮЪяРПНЙЮ Х═оНДЯРЮМНБЙЮ ЯРПНЙЮУ ЛНЦСР АШРЭ
ЩЙПЮМХПНБЮМШ (ХЛЕЕРЯЪ ББХДС, НРМНЬЕМХЕ Й═МХЛ ЙЮЙ Й═МНПЛЮКЭМШЛ ЯХЛБНКЮЛ АЕГ ХУ═ НАШВМНЦН ЯОЕЖХЮКЭМНЦН ГМЮВЕМХЪ) ОСРЕЛ ОПЕДЬЕЯРБСЧЫЕЦН ХЛ═ЯХЛБНКЮ ЯКЕЬЮ ('\').
дПСЦХЛХ ЯКНБЮЛХ, БШ═ЛНФЕРЕ БЙКЧВЮРЭ ЯХЛБНК═ДНККЮПЮ
Б═ЯРПНЙС оНДЯРЮМНБЙЮ ХЯОНКЭГСЪ
'\$
'; ЩРН МЕ═ОНГБНКХР mod_rewrite НРМНЯХРЭЯЪ Й═МЕЛС
ЙЮЙ Й═НАПЮРМНИ ЯЯШКЙЕ.
мЮКХВХЕ НАПЮРМШУ ЯБЪГЕИ Б═ПЕЦСКЪПМШУ БШПЮФЕМХЪУ
гДЕЯЭ МСФМН ГЮОНЛМХРЭ НДМС БЮФМСЧ БЕЫЭ: бЯЪЙХИ ПЮГ, ЙНЦДЮ БШ═ ХЯОНКЭГСЕРЕ ЙПСЦКШЕ ЯЙНАЙХ Б═ьЮАКНМ ХКХ Б═НДМНЛ ХГ═ сЯКНБХЕ, ЯНГДЮЧРЯЪ БМСРПЕММХЕ НАПЮРМШЕ ЯБЪГХ
ЙНРНПШЕ ЛНЦСР АШРЭ ХЯОНКЭГНБЮМШ ЯН═ЯРПНЙЮЛХ $N
Х═ %N
(ЯЛ. МХФЕ). нМХ ОНКЕГМШ ОПХ ЯНГДЮМХХ
ЯРПНЙ оНДЯРЮМНБЙЮ Х═яПЮБМХБЮЕЛЮЪяРПНЙЮ.
пХЯСМНЙ 2═ОНЙЮГШБЮЕР Б═ЙЮЙХЕ ЛЕЯРЮ ОПХ ДНОНКМЕМХХ
(ЯРПНЙ оНДЯРЮМНБЙЮ Х═яПЮБМХБЮЕЛЮЪяРПНЙЮ) ОЕПЕЛЕЫЮЧРЯЪ
НАПЮРМШЕ ЯБЪГХ.
пХЯСМНЙ 2: дБХФЕМХЕ НАПЮРМШУ ЯБЪГЕИ Б═ОПЮБХКЕ.
хРЮЙ,═≈ ЩРН АШК МЕОНДЗ╦ЛМШИ ЙСПЯ ОН═БМСРПЕММХЛ ЛЕУЮМХГЛЮЛ mod_rewrite, МН═НМ═БЮЛ ЯХКЭМН ОНЛНФЕР ОПХ ДЮКЭМЕИЬЕЛ ВРЕМХХ ДНЙСЛЕМРЮЖХХ ОН═ДЮММНЛС ЛНДСКЧ.
оЕПЕЛЕММШЕ НЙПСФЕМХЪ
щРНР ЛНДСКЭ НРЯКЕФХБЮЕР ДБЕ ДНОНКМХРЕКЭМШЕ (МЕЯРЮМДЮПРМШЕ)
ОЕПЕЛЕММШЕ НЙПСФЕМХЪ CGI/SSI МЮГШБЮЕЛШЕ SCRIPT_URL
Х═SCRIPT_URI
. нМХ ЯНДЕПФЮР
КНЦХВЕЯЙНЕ ОПЕДЯРЮБКЕМХЕ РЕЙСЫЕЦН ПЕЯСПЯЮ, Р.Е. РН, ЙЮЙХЛ БШ═БХДХРЕ ЩРН Б═ЮДПЕЯМНИ ЯРПНЙЕ АПЮСГЕПЮ,
Б═РН═БПЕЛЪ ЙЮЙ ЯРЮМДЮПРМШЕ ОЕПЕЛЕММШЕ CGI/SSI SCRIPT_NAME
Х═ SCRIPT_FILENAME
ЯНДЕПФЮР ТХГХВЕЯЙНЕ ХКХ
ЯХЯРЕЛМНЕ ОПЕДЯРЮБКЕМХЕ.
гЮЛЕВЮМХЕ: ЩРХ ОЕПЕЛЕММШЕ ЯНДЕПФЮР URI/URL Б═РНЛ БХДЕ, Б═ЙНРНПНЛ НМХ АШКХ ОЕПБНМЮВЮКЭМН ГЮОПНЬЕМШ, Р.Е., ОЕПЕД РЕЛ ЙЮЙ АШКХ ЯДЕКЮМШЕ ЙЮЙХЕ-КХАН ОПЕНАПЮГНБЮМХЪ. щРН БЮФМН, ХАН ОПНЖЕЯЯ ОПЕНАПЮГНБЮМХЪ Б═ОЕПБСЧ НВЕПЕДЭ ХЯОНКЭГСЕРЯЪ ДКЪ ОПЕНАПЮГНБЮМХЪ КНЦХВЕЯЙХУ URL Б═ТХГХВЕЯЙХЕ ОСРХ Й═ЙНМЙПЕРМШЛ ТЮИКЮЛ.
оПХЛЕП
SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html SCRIPT_FILENAME=/u/rse/.www/index.html SCRIPT_URL=/u/rse/ SCRIPT_URI=http://en1.engelschall.com/u/rse/
оПЮЙРХВЕЯЙХЕ ПЕЬЕМХЪ
хЛЕЕРЯЪ Х═пСЙНБНДЯРБН ОН═ОПЕНАПЮГНБЮМХЪЛ URL, ЯНДЕПФЮЫЕЕ ЙНККЕЙЖХЧ ОПЮЙРХВЕЯЙХУ ПЕЬЕМХИ ОПНАКЕЛ URL ОПЕНАПЮГНБЮМХИ. рЮЛ ЛНФМН МЮИРХ МЮАНПШ ОПЮБХК БГЪРШЕ ХГ═ПЕЮКЭМНИ ФХГМХ Х═ДНОНКМХРЕКЭМСЧ ХМТНПЛЮЖХЧ Н═ mod_rewrite.
RewriteBase дХПЕЙРХБЮ
нОХЯЮМХЕ: | сЯРЮМЮБКХБЮЕР АЮГНБШИ URL ДКЪ ОПЕНАПЮГНБЮМХИ Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ |
---|---|
яХМРЮЙЯХЯ: | RewriteBase URL-path |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | яЛНРПХ ХЯОНКЭГНБЮМХЕ ДКЪ АНКЕЕ ОНДПНАМНИ ХМТНПЛЮЖХХ. |
йНМРЕЙЯР: | directory.htaccess |
пЮГПЕЬЕМХЕ: | FileInfo |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
дХПЕЙРХБЮ RewriteBase
СЯРЮМЮБКХБЮЕР ЙНМЙПЕРМШИ,
АЮГНБШИ URL ДКЪ ОПЕНАПЮГНБЮМХИ Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ. йЮЙ БШ═СБХДХРЕ МХФЕ,
RewriteRule
ЛНФЕР АШРЭ ХЯОНКЭГНБЮМН Б═ЙНМТХЦСПЮЖХНММШУ ТЮИКЮУ ЙЮРЮКНЦНБ
(.htaccess
). щРН АСДЕР ПЮАНРЮРЭ КНЙЮКЭМН,
Р.Е., ОПЕТХЙЯ КНЙЮКЭМНЦН ЙЮРЮКНЦЮ НРАПЮЯШБЮЕРЯЪ МЮ═ЩРНЛ
ЩРЮОЕ НАПЮАНРЙХ Х═БЮЬХ ОПЮБХКЮ ОПЕНАПЮГНБЮМХИ ПЮАНРЮЧР РНКЭЙН Б═ НЯРЮБЬЕИЯЪ ВЮЯРХ. б═ЙНМЖЕ НМ═ЮБРНЛЮРХВЕЯЙХ ДНАЮБКЪЕРЯЪ НАПЮРМН Й═ОСРХ.
мЮЯРПНИЙЮ ОН-СЛНКВЮМХЧ; RewriteBase
physical-directory-path
йНЦДЮ, ДКЪ ЙЮЙНЦН-МХАСДЭ МНБНЦН URL ОПНХЯУНДХР ОНДЯРЮМНБЙЮ(ОПЕНАПЮГНБЮМХЕ),
ЩРНР ЛНДСКЭ ДНКФЕМ ГЮМНБН БНБКЕВЭ ЩРНР URL Б═НАПЮАНРЙС.
дКЪ РНЦН ВРНАШ ХЛЕРЭ БНГЛНФМНЯРЭ ЯДЕКЮРЭ ЩРН, МСФМН ГМЮРЭ
ЙЮЙХЕ С═МЕЦН ОПЕТХЙЯ ХКХ АЮГЮ URL. оН-СЛНКВЮМХЧ ЩРНР ОПЕТХЙЯ ПЮБЕМ ЯЮЛНЛС ОСРХ.
нДМЮЙН МЮ═АНКЭЬХМЯРБЕ ЯЮИРНБ URL'Ш ме═ОПЪЛН
ЯННРБЕРЯРБСЧР ТХГХВЕЯЙХЛ ОСРЪЛ, ОНЩРНЛС ЩРН
ДНОСЫЕМХЕ НАШВМН НЙЮФЕРЯЪ МЕБЕПМШЛ! б═ЩРНЛ ЯКСВЮЕ БШ═ДНКФМШ
ХЯОНКЭГНБЮРЭ ДХПЕЙРХБС RewriteBase
ДКЪ СЙЮГЮМХЪ ОПЮБХКЭМНЦН
ОПЕТХЙЯЮ URL.
RewriteBase
Б═ЙЮФДНЛ ХГ═.htaccess
ТЮИКНБ ЦДЕ БШ═УНРХРЕ ХЯОНКЭГНБЮРЭ ДХПЕЙРХБШ RewriteRule
.
мЮОПХЛЕП, ОПЕДОНКНФХЛ ЯКЕДСЧЫХИ ЙНМТХЦСПЮЖХНММШИ ТЮИК ЙЮРЮКНЦЮ:
# # /abc/def/.htaccess -- ЙНМТХЦСПЮЖХНММШИ ТЮИК ЙЮРЮКНЦЮ /abc/def # оНЛМХРЕ: /abc/def ЩРН ТХГХВЕЯЙХИ ОСРЭ /xyz, Р.Е., С ЯЕПБЕПЮ ЕЯРЭ # ДХПЕЙРХБЮ 'Alias /xyz /abc/def' Й ОПХЛЕПС # RewriteEngine On # ДЮЕЛ ЯЕПБЕПС ГМЮРЭ ВРН ЛШ ПЮАНРЮЕЛ ВЕПЕГ /xyz Ю МЕ # ВЕПЕГ ОПЕТХЙЯ ТХГХВЕЯЙНЦН ОСРХ /abc/def RewriteBase /xyz # РЕОЕПЭ ОПЮБХКЮ ОПЕНАПЮГНБЮМХИ RewriteRule ^oldstuff\.html$ newstuff.html
б═ОПХЛЕПЕ БШЬЕ, ГЮОПНЯ Й═ /xyz/oldstuff.html
ЙНППЕЙРМН ОПЕНАПЮГСЕРЯЪ Б═ ТХГХВЕЯЙХИ ТЮИК /abc/def/newstuff.html
.
дКЪ КЧАХРЕКЕИ ОНЙНБШПЪРЭЯЪ Б═Apache
яКЕДСЧЫХИ ЯОХЯНЙ ДЮЕР ОНДПНАМСЧ ХМТНПЛЮЖХЧ НА═ ЩРЮОЮУ БМСРПЕММЕИ ПЮАНРШ:
гЮОПНЯ: /xyz/oldstuff.html бМСРПЕММЪЪ ПЮАНРЮ: /xyz/oldstuff.html -> /abc/def/oldstuff.html (per-server Alias) /abc/def/oldstuff.html -> /abc/def/newstuff.html (per-dir RewriteRule) /abc/def/newstuff.html -> /xyz/newstuff.html (per-dir RewriteBase) /xyz/newstuff.html -> /abc/def/newstuff.html (per-server Alias) пЕГСКЭРЮР: /abc/def/newstuff.html
щРН ЙЮФЕРЯЪ НВЕМЭ ЯКНФМШЛ НДМЮЙН ЩРН ЙНППЕЙРМЮЪ БМСРПЕММЪЪ ПЮАНРЮ Apache, ХГ-ГЮ РНЦН ВРН ОПЕНАПЮГНБЮМХЪ Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ ОПНХЯУНДЪР ЯКХЬЙНЛ ОНГДМН Б═ ЩРНЛ ОПНЖЕЯЯЕ. оНЩРНЛС, ЙНЦДЮ ЩРН ОПНХЯУНДХР (ОПЕНАПЮГНБЮМХЕ), ГЮОПНЯ ДНКФЕМ АШРЭ БНГБПЮЫЕМ НАПЮРМН ЪДПС Apache! мн: б═РН═БПЕЛЪ ЙЮЙ ЩРН ЙЮФЕРЯЪ ЯЕПЗ╦ГМШЛ МЮЙКЮДМШЛ ПЮЯУНДНЛ, Б═ДЕИЯРБХРЕКЭМНЯРХ ЩРН МЕ═РЮЙ, ОНРНЛС ВРН ЩРНР БНГБПЮР ОПНХЯУНДХР ЖЕКХЙНЛ БМСРПХ ЯЕПБЕПЮ Apache Х═РЮ═ФЕ═ЯЮЛЮЪ ОПНЖЕДСПЮ ХЯОНКЭГСЕРЯЪ ЛМНЦХЛХ ДПСЦХЛХ НОЕПЮЖХЪЛХ БМСРПХ Apache. оНЩРНЛС, БШ═ЛНФЕРЕ АШРЭ СБЕПЕМШ ВРН ДХГЮИМ Х═ПЕЮКХГЮЖХЪ ОПЮБХКЭМШЕ.
RewriteCond дХПЕЙРХБЮ
нОХЯЮМХЕ: | нОПЕДЕКЪЕР СЯКНБХЕ ОПХ ЙНРНПНЛ ОПНХЯУНДХР ОПЕНАПЮГНБЮМХЕ |
---|---|
яХМРЮЙЯХЯ: | RewriteCond яПЮБМХБЮЕЛЮЪяРПНЙЮсЯКНБХЕ |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | None |
йНМРЕЙЯР: | server configvirtual hostdirectory.htaccess |
пЮГПЕЬЕМХЕ: | FileInfo |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
дХПЕЙРХБЮ RewriteCond
НОПЕДЕКЪЕР
СЯКНБХЪ ДКЪ ЙЮЙНЦН-КХАН ОПЮБХКЮ. оЕПЕД ДХПЕЙРХБНИ RewriteRule
ПЮЯОНКЮЦЮЧРЯЪ НДМЮ ХКХ
МЕЯЙНКЭЙН ДХПЕЙРХБ RewriteCond
. яКЕДСЧЫЕЕ ГЮ═МХЛХ
ОПЮБХКН ОПЕНАПЮГНБЮМХЪ ХЯОНКЭГСЕРЯЪ РНКЭЙН РНЦДЮ, ЙНЦДЮ URI
ЯННРБЕРЯРБСЕР СЯКНБХЪЛ ЩРНИ ДХПЕЙРХБШ Х РЮЙФЕ СЯКНБХЪЛ ЩРХУ
ДНОНКХРЕКЭМШУ ДХПЕЙРХБ.
яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯРПНЙЮ ЙНРНПЮЪ ЛНФЕР ЯНДЕПФЮРЭ ЯКЕДСЧЫХЕ ДНОНКМХРЕКЭМШЕ ЙНМЯРПСЙЖХХ Б═ДНОНКЕМХХ Й═ОПНЯРНЛС РЕЙЯРС:
- RewriteRule НАПЮРМШЕ_ЯБЪГХ: щРН
НАПЮРМШЕ ЯБЪГХ БХДЮ
$N
RewriteRule
(ЕДХМЯРБЕММНИ, ЯКЕДСЧЫЕИ ЯПЮГС ГЮ═РЕЙСЫХЛ МЮАНПНЛ ДХПЕЙРХБRewriteCond
). - RewriteCond НАПЮРМШЕ_ЯБЪГХ: щРН
НАПЮРМШЕ ЯБЪГХ БХДЮ
%N
RewriteCond
Б═РЕЙСЫЕЛ МЮАНПЕ СЯКНБХИ. - RewriteMap ПЮЯЬХПЕМХЪ: щРН ПЮЯЬХПЕМХЪ
БХДЮ
${mapname:key|default}
- оЕПЕЛЕММШЕ ЯЕПБЕПЮ: щРН ОЕПЕЛЕММШЕ БХДЮ
%{
NAME_OF_VARIABLE}
HTTP ГЮЦНКНБЙХ: ЯНЕДХМЕМХЕ & ГЮОПНЯ: HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPTREMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPEБМСРПЕММХЕ ЯЕПБЕПЮ: ЯХЯРЕЛМШЕ: ЯОЕЖХЮКЭМШЕ: DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARETIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIMEAPI_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQщРХ ОЕПЕЛЕММШЕ ОНКМНЯРЭЧ ЯННРБЕРЯРБСЧР МЮГБЮММШЛ ОНУНФХЛ НАПЮГНЛ MIME-ГЮЦНКНБЙЮЛ HTTP , яХ═ОЕПЕЛЕММШЛ ЯЕПБЕПЮ Apache ХКХ ОНКЪЛ
struct tm
ЯХЯРЕЛ Unix. аНКЭЬХМЯРБН ХГ═МХУ ДНЙСЛЕМРПНБЮММШ Б═ДПСЦХУ ЛЕЯРЮУ ПСЙНБНДЯРБЮ ХКХ Б═ ЯОЕЖХТХЙЮЖХХ CGI. рЕ, ВРН ЪБКЪЧРЯЪ ДКЪ mod_rewrite ЯОЕЖХЮКЭМШЛХ БЙКЧВЮЧР:IS_SUBREQ
- аСДЕР ЯНДЕПФЮРЭ РЕЙЯР ╚true╩ ЕЯКХ ГЮОПНЯ БШОНКМЪЕРЯЪ Б═ РЕЙСЫХИ ЛНЛЕМР ЙЮЙ ОНДГЮОПНЯ, ╚false╩ Б═ДПСЦНЛ ЯКСВЮЕ. оНДГЮОПНЯШ ЛНЦСР АШРЭ ЯЦЕМЕПХПНБЮММШ ЛНДСКЪЛХ ЙНРНПШЛ МСФМН ХЛЕРЭ ДЕКН Я═ДНОНКМХРЕКЭМШЛХ ТЮИКЮЛХ ХКХ URI ДКЪ РНЦН ВРНАШ БШОНКМХРЭ ЯНАЯРБЕММШЕ ГЮДЮВХ.
API_VERSION
- щРН БЕПЯХЪ API ЛНДСКЪ Apache (БМСРПЕММХИ ХМРЕПТЕИЯ ЛЕФДС ЯЕПБЕПНЛ Х═ ЛНДСКЕЛ) Б═РЕЙСЫЕИ ЯАНПЙЕ ЯЕПБЕПЮ, ВРН НОПЕДЕКЕМН Б═ include/ap_mmn.h. API БЕПЯХЪ ЛНДСКЪ ЯННРБЕРЯРБСЕР ХЯОНКЭГСЕЛНИ БЕПЯХХ Apache (ДКЪ БЕПЯХХ Apache 1.3.14, Й═ОПХЛЕПС ЩРН 19990320:10), НДМЮЙН ЩРН Б═НЯМНБМНЛ ХМРЕПЕЯМН ЮБРНПЮЛ ЛНДСКЕИ.
THE_REQUEST
- оНКМЮЪ ЯРПНЙЮ HTTP ГЮОПНЯЮ НРОПЮБКЕММЮЪ АПЮСГЕПНЛ
ЯЕПБЕПС (Р.Е., ╚
GET /index.html HTTP/1.1
╩). нМЮ МЕ═БЙКЧВЮЕР ЙЮЙХЕ-КХАН ДНОНКМХРЕКЭМШЕ ГЮЦНКНБЙХ НРОПЮБКЪЕЛШЕ АПЮСГЕПНЛ. REQUEST_URI
- пЕЯСПЯ, ГЮОПНЬЕММШИ Б═ЯРПНЙЕ HTTP ГЮОПНЯЮ. (б ОПХЛЕПЕ БШЬЕ, ЩРН АШКН АШ═ ╚/index.html╩.)
REQUEST_FILENAME
- оНКМШИ ОСРЭ Б═ТЮИКНБНИ ЯХЯРЕЛЕ ЯЕПБЕПЮ Й═ТЮИКС ХКХ ЯЙПХОРС ЯННРБЕРЯРБСЧЫХЛ ЩРНЛС ГЮОПНЯС.
яОЕЖХЮКЭМШЕ ОПХЛЕВЮМХЪ:
- оЕПЕЛЕММШЕ SCRIPT_FILENAME Х═REQUEST_FILENAME
ЯНДЕПФЮР НДХМЮЙНБШЕ ГМЮВЕМХЪ, Р.Е., ГМЮВЕМХЕ ОНКЪ
filename
БМСРПЕММЕИ ЯРПСЙРСПШrequest_rec
ЯЕПБЕПЮ Apache. оЕПБНЕ ХЛЪ ЩРН ОПНЯРН ЬХПНЙН ХГБЕЯРМНЕ ХЛЪ ОЕПЕЛЕММНИ CGI Б═РН═БПЕЛЪ ЙЮЙ БРНПНЕ ЩРН ОНЯРНЪММЮЪ ЙНОХЪ REQUEST_URI (ЯНДЕПФЮЫЮЪ ГМЮВЕМХЕ ОНКЪuri
ЯРПСЙРСПШrequest_rec
). - еЯРЭ ЯОЕЖХЮКЭМШИ ТНПЛЮР:
%{ENV:ОЕПЕЛЕММЮЪ}
ЦДЕ ОЕПЕЛЕММЮЪ ЛНФЕР АШРЭ КЧАНИ ОЕПЕЛЕММНИ НЙПСФЕМХЪ. щРН ХЫЕРЯЪ БН═БМСРПЕММХУ ЯРПСЙРСПЮУ Apache Х═(ЕЯКХ РЮЛ МЕР) Я═ОНЛНЫЭЧ БШГНБЮgetenv()
ХГ═ОПНЖЕЯЯЮ Apache ЯЕПБЕПЮ. - еЯРЭ ЯОЕЖХЮКЭМШИ ТНПЛЮР:
%{HTTP:ГЮЦНКНБНЙ}
ЦДЕ ГЮЦНКНБНЙ ЛНФЕР АШРЭ КЧАШЛ ХЛЕМЕЛ HTTP MIME-ГЮЦНКНБЙЮ. щРН ХЫЕРЯЪ Б═HTTP ГЮОПНЯЕ. оПХЛЕП:%{HTTP:Proxy-Connection}
ГМЮВЕМХЕ HTTP ГЮЦНКНБЙЮ ╚Proxy-Connection:
╩. - еЯРЭ ЯОЕЖХЮКЭМШИ ТНПЛЮР
%{LA-U:ОЕПЕЛЕММЮЪ}
НОЕПЕФЮЧЫХУ ГЮОПНЯНБ ЙНРНПШЕ ОПНХГБНДЪРЯЪ БМСРПЕММХЛ (НЯМНБЮММНЛ МЮ═URL) ОНДГЮОПНЯНЛ ДКЪ НОПЕДЕКЕМХЪ ЙНМЕВМНЦН ГМЮВЕМХЪ ОЕПЕЛЕММНИ. хЯОНКЭГСИРЕ ЩРН ЙНЦДЮ БШ═УНРХРЕ ХЯОНКЭГНБЮРЭ ОЕПЕЛЕММСЧ ДКЪ ОПЕНАПЮГНБЮМХИ, ЙНРНПЮЪ ПЕЮКЭМН НОПЕДЕКЪЕРЯЪ ОНГДМЕЕ, Б═ ЙЮЙНИ-КХАН ТЮГЕ API, Х═РЮЙХЛ НАПЮГНЛ МЕДНЯРСОМЮ МЮ═ДЮММНЛ ЩРЮОЕ. дКЪ ОПХЛЕПЮ ЙНЦДЮ БШ═УНРХРЕ ОПЕНАПЮГНБЮРЭ ЯННРБЕРЯРБЕММН ОЕПЕЛЕММНИREMOTE_USER
ХГ═ЙНМРЕЙЯРЮ ЯЕПБЕПЮ (ТЮИКhttpd.conf
) БШ═ДНКФМШ ХЯОНКЭГНБЮРЭ%{LA-U:REMOTE_USER}
ОНРНЛС ВРН ЩРЮ ОЕПЕЛЕММЮЪ СЯРЮМЮБКХБЮЕРЯЪ Б═ТЮГЮУ ЮБРНПХГЮЖХХ ЙНРНПШЕ ХДСР ОНЯКЕ ТЮГШ РПЮМЯКЪЖХХ URL Б═ЙНРНПНИ Х═ПЮАНРЮЕР mod_rewrite. я═ДПСЦНИ ЯРНПНМШ, ОН═ОПХВХМЕ ПЕЮКХГЮЖХХ ПЮАНРШ mod_rewrite Б═ ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ (ТЮИК.htaccess
) ВЕПЕГ Fixup ТЮГС API Х═ХГ-ГЮ РНЦН, ТЮГШ ЮБРНПХГЮЖХХ ХДСР ДН ЩРНИ ТЮГШ, БШ═ОПНЯРН ЛНФЕРЕ РЮЛ ХЯОНКЭГНБЮРЭ%{REMOTE_USER}
. - еЯРЭ ЯОЕЖХЮКЭМШИ ТНПЛЮР:
%{LA-F:ОЕПЕЛЕММЮЪ}
ЙНРНПШИ ЯНГДЮЕР БМСРПЕММХИ (НЯМНБЮММШИ МЮ═ХЛЕМХ ТЮИКЮ) ОНДГЮОПНЯ ДКЪ НОПЕДЕКЕМХЪ ЙНМЕВМНЦН ГМЮВЕМХЪ ОЕПЕЛЕММНИ. б═НЯМНБМНЛ ЩРН РН═ФЕ═ЯЮЛНЕ ВРН Х═ТНПЛЮР LA-U ОПХБЕДЕММШИ БШЬЕ.
сЯКНБХЕ ЩРН ЬЮАКНМ СЯКНБХЪ, Р.Е., ЙЮЙНЕ-КХАН ПЕЦСКЪПМНЕ БШПЮФЕМХЕ ОПХЛЕМЪЕЛНЕ Й═РЕЙСЫЕЛС ЩЙГЕЛОКЪПС яПЮБМХБЮЕЛЮЪяРПНЙЮ, Р.Е., яПЮБМХБЮЕЛЮЪяРПНЙЮ ОПНЯЛЮРПХБЮЕРЯЪ МЮ═ОНХЯЙ ЯННРБЕРЯРБХЪ сЯКНБХЕ.
оНЛМХРЕ: сЯКНБХЕ ЩРН perl ЯНБЛЕЯРХЛНЕ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ Я═МЕЙНРНПШЛХ ДНОНКМЕМХЪЛХ:
- бШ═ЛНФЕРЕ ОПЕДБЮПЪРЭ ЯРПНЙС ЬЮАКНМЮ ОПЕТХЙЯНЛ
'
!
' (БНЯЙКХЖЮРЕКЭМШИ ГМЮЙ) ДКЪ СЙЮГЮМХЪ МЕЯННРБЕРЯРБХЪ ЬЮАКНМС. -
еЯРЭ МЕЙНРНПШЕ ЯОЕЖХЮКЭМШЕ БЮПХЮМРШ сЯКНБХЕs.
бЛЕЯРН НАШВМШУ ЯРПНЙ Я═ПЕЦСКЪПМШЛХ БШПЮФЕМХЪЛХ ЛНФМН РЮЙФЕ ХЯОНКЭГНБЮРЭ
НДХМ ХГ═ЯКЕДСЧЫХУ БЮПХЮМРНБ:
- '<сЯКНБХЕ' (КЕЙЯХВЕЯЙХ ЛЕМЭЬЕ)
сЯКНБХЕ ЯВХРЮЕРЯЪ ОПНЯРНИ ЯРПНЙНИ Х═ КЕЙЯХВЕЯЙХ ЯПЮБМХБЮЕРЯЪ Я═яПЮБМХБЮЕЛЮЪяРПНЙЮ. хЯРХММН ЕЯКХ яПЮБМХБЮЕЛЮЪяРПНЙЮ КЕЙЯХВЕЯЙХ ЛЕМЭЬЕ ВЕЛ сЯКНБХЕ. - '>сЯКНБХЕ' (КЕЙЯХВЕЯЙХ АНКЭЬЕ)
сЯКНБХЕ ЯВХРЮЕРЯЪ ОПНЯРНИ ЯРПНЙНИ Х═ КЕЙЯХВЕЯЙХ ЯПЮБМХБЮЕРЯЪ Я═яПЮБМХБЮЕЛЮЪяРПНЙЮ. хЯРХММН ЕЯКХ яПЮБМХБЮЕЛЮЪяРПНЙЮ КЕЙЯХВЕЯЙХ АНКЭЬЕ ВЕЛ сЯКНБХЕ. - '=сЯКНБХЕ' (КЕЙЯХВЕЯЙХ ПЮБМН)
сЯКНБХЕ ЯВХРЮЕРЯЪ ОПНЯРНИ ЯРПНЙНИ Х═КЕЙЯХВЕЯЙХ ЯПЮБМХБЮЕРЯЪ Я═яПЮБМХБЮЕЛЮЪяРПНЙЮ. хЯРХММН ЕЯКХ яПЮБМХБЮЕЛЮЪяРПНЙЮ КЕЙЯХВЕЯЙХ ПЮБМН сЯКНБХЕ, Р.Е. ЩРХ ДБЕ ЯРПНЙХ ОНКМНЯРЭЧ НДХМЮЙНБШ (ЯХЛБНК Б═ЯХЛБНК). еЯКХ сЯКНБХЕ ХЛЕЕР БХД""
(ДБЮ ГМЮЙЮ ДЧИЛЮ ХДСЫХУ ОНДПЪД) ЩРН ЯПЮБМХБЮЕР яПЮБМХБЮЕЛЮЪяРПНЙЮ Я═ОСЯРНИ ЯРПНЙНИ. - '-d' (ЪБКЪЕРЯЪ КХ═ЙЮРЮКНЦНЛ)
яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯВХРЮЕРЯЪ ОСРЕЛ, ОПНБЕПЪЕРЯЪ ЯСЫЕЯРБНБЮМХЕ ЩРНЦН ОСРХ Х═РН═ВРН ЩРНР ОСРЭ ЪБКЪЕРЯЪ ЙЮРЮКНЦНЛ. - '-f' (ЪБКЪЕРЯЪ КХ═НАШВМШЛ ТЮИКНЛ)
яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯВХРЮЕРЯЪ ОСРЕЛ, ОПНБЕПЪЕРЯЪ ЯСЫЕЯРБНБЮМХЕ ЩРНЦН ОСРХ Х═РН═ВРН ЩРНР ОСРЭ ЪБКЪЕРЯЪ НАШВМШЛ ТЮИКНЛ. - '-s' (ЪБКЪЕРЯЪ КХ═НАШВМШЛ ТЮИКНЛ Я═МЕМСКЕБШЛ ПЮГЛЕПНЛ)
яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯВХРЮЕРЯЪ ОСРЕЛ, ОПНБЕПЪЕРЯЪ ЯСЫЕЯРБНБЮМХЕ ЩРНЦН ОСРХ Х═РН═ВРН ЩРНР ОСРЭ ЪБКЪЕРЯЪ НАШВМШЛ ТЮИКНЛ, ПЮГЛЕП ЙНРНПНЦН АНКЭЬЕ МСКЪ. - '-l' (ЪБКЪЕРЯЪ КХ═ЯХЛБНКХВЕЯЙНИ ЯЯШКЙНИ)
яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯВХРЮЕРЯЪ ОСРЕЛ, ОПНБЕПЪЕРЯЪ ЯСЫЕЯРБНБЮМХЕ ЩРНЦН ОСРХ Х═РН═ВРН ЩРНР ОСРЭ ЪБКЪЕРЯЪ ЯХЛБНКХВЕЯЙНИ ЯЯШКЙНИ. - '-F' (ОПНБЕПЙЮ ЯСЫЕЯРБНБЮМХЪ ТЮИКЮ ВЕПЕГ ОНДГЮОПНЯ)
оПНБЕПЪЕР ВЕПЕГ БЯЕ ЯОХЯЙХ ЙНМРПНКЪ ДНЯРСОЮ ЯЕПБЕПЮ, ЯСЫЕЯРБСЧЫХЕ Б═МЮЯРНЪЫХИ ЛНЛЕМР, ЪБКЪЕРЯЪ КХ═яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯСЫЕЯРБСЧЫХЛ ТЮИКНЛ, ДНЯРСОМШЛ ОН═ЩРНЛС ОСРХ. дКЪ ЩРНИ ОПНБЕПЙХ ХЯОНКЭГСЕРЯЪ БМСРПЕММХИ ОНДГЮОПНЯ, ОНЩРНЛС ХЯОНКЭГСИРЕ ЩРС НОЖХЧ Я═НЯРНПНФМНЯРЭЧ ═≈ ЩРН НРПХЖЮРЕКЭМН ЯЙЮГШБЮЕРЯЪ МЮ═ОПНХГБНДХРЕКЭМНЯРХ ЯЕПБЕПЮ! - '-U' (ОПНБЕПЙЮ ЯСЫЕЯРБНБЮМХЪ URL ВЕПЕГ ОНДГЮОПНЯ)
оПНБЕПЪЕР ВЕПЕГ БЯЕ ЯОХЯЙХ ЙНМРПНКЪ ДНЯРСОЮ ЯЕПБЕПЮ, ЯСЫЕЯРБСЧЫХЕ Б═МЮЯРНЪЫХИ ЛНЛЕМР, ЪБКЪЕРЯЪ КХ═яПЮБМХБЮЕЛЮЪяРПНЙЮ ЯСЫЕЯРБСЧЫХЛ URL, ДНЯРСОМШЛ ОН═ЩРНЛС ОСРХ. дКЪ ЩРНИ ОПНБЕПЙХ ХЯОНКЭГСЕРЯЪ БМСРПЕММХИ ОНДГЮОПНЯ, ОНЩРНЛС ХЯОНКЭГСИРЕ ЩРС НОЖХЧ Я═НЯРНПНФМНЯРЭЧ ═≈ ЩРН НРПХЖЮРЕКЭМН ЯЙЮГШБЮЕРЯЪ МЮ═ОПНХГБНДХРЕКЭМНЯРХ ЯЕПБЕПЮ!
гЮЛЕВЮМХЕ
бЯЕ ЩРХ ОПНБЕПЙХ РЮЙФЕ ЛНЦСР АШРЭ ОПЕДБЮПЕМШ ОПЕТХЙЯНЛ БНЯЙКХЖЮРЕКЭМШИ ГМЮЙ ('!') ДКЪ ХМБЕПРХПНБЮМХЪ ХУ═ГМЮВЕМХЪ. - '<сЯКНБХЕ' (КЕЙЯХВЕЯЙХ ЛЕМЭЬЕ)
дНОНКМХРЕКЭМН БШ═ЛНФЕРЕ СЯРЮМЮБКХБЮРЭ ЯОЕЖХЮКЭМШЕ ТКЮЦХ ДКЪ сЯКНБХЕ ДНАЮБКЪЪ
[
flags]
РПЕРЭХЛ ЮПЦСЛЕМРНЛ Б═ДХПЕЙРХБС RewriteCond
.
Flags ЯОХЯНЙ ЯКЕДСЧЫХУ ТКЮЦНБ ПЮГДЕКЕММШУ ГЮОЪРШЛХ:
- '
nocase|NC
' (ПЕЦХЯРПНМЕГЮБХЯХЛН)
пЕЦХЯРП МЕ═ХЛЕЕР ГМЮВЕМХЕ, Р.Е., МЕР ПЮГКХВХИ ЛЕФДС 'A-Z' Х═'a-z' ЙЮЙ Б═ДНОНКМЕМХХ яПЮБМХБЮЕЛЮЪяРПНЙЮ РЮЙ Х═сЯКНБХЕ. щРНР ТКЮЦ ЩТТЕЙРХБЕМ РНКЭЙН ДКЪ ЯПЮБМЕМХИ ЛЕФДС яПЮБМХБЮЕЛЮЪяРПНЙЮ Х═сЯКНБХЕ. нМ═МЕ═ ПЮАНРЮЕР ОПХ ОПНБЕПЙЮУ Б═ТЮИКНБНИ ЯХЯРЕЛЕ Х═Б═ОНДГЮОПНЯЮУ. -
'
ornext|OR
' (КХАН ЯКЕДСЧЫЕЕ СЯКНБХЕ)
хЯОНКЭГСИРЕ ДКЪ ЙНЛАХМХПНБЮМХЪ СЯКНБХИ Б═ОПЮБХКЮУ OR═ БЛЕЯРН AND. рХОХВМШИ ОПХЛЕП:аЕГ ЩРНЦН ТКЮЦЮ БШ═ДНКФМШ АШКХ АШ═МЮОХЯЮРЭ ЩРН СЯКНБХЕ/ОПЮБХКН РПХ ПЮГЮ.RewriteCond %{REMOTE_HOST} ^host1.* [OR] RewriteCond %{REMOTE_HOST} ^host2.* [OR] RewriteCond %{REMOTE_HOST} ^host3.* RewriteRule ...some special stuff for any of these hosts...
оПХЛЕП:
дКЪ БШДЮВХ ЦКЮБМНИ ЯРПЮМХЖШ ЙЮЙНЦН-КХАН ЯЮИРЮ
ЯНЦКЮЯМН ╚User-Agent:
╩ ГЮЦНКНБЙС ГЮОПНЯЮ, БШ═ЛНФЕРЕ
ХЯОНКЭГНБЮРЭ ЯКЕДСЧЫХЕ ДХПЕЙРХБШ:
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* RewriteRule ^/$ /homepage.max.html [L] RewriteCond %{HTTP_USER_AGENT} ^Lynx.* RewriteRule ^/$ /homepage.min.html [L] RewriteRule ^/$ /homepage.std.html [L]
хМРЕПОПЕРЮЖХЪ: еЯКХ С═БЮЯ Netscape Navigator (ЙНРНПШИ ХДЕМРХТХЖХПСЕРЯЪ ЙЮЙ 'Mozilla'), БШ═БШДЮЕРЕ ЛЮЙЯХЛЮКЭМН МЮБНПНВЕММСЧ ЯРПЮМХЖС, Я═ТПЕИЛЮЛХ, Х═Р.Д. еЯКХ С═БЮЯ Lynx (РЕЙЯРНБШИ АПЮСГЕП), БШ═БШДЮЕРЕ МЮХЛЕМЕЕ МЮБНПНВЕММСЧ ЯРПЮМХЖС, АЕГ ПХЯСМЙНБ, РЮАКХЖ Х═Р.Д. еЯКХ КЧАНИ ДПСЦНИ АПЮСГЕП, БШДЮЕРЕ ЯРЮМДЮПРМСЧ ЯРПЮМХЖС.
RewriteEngine дХПЕЙРХБЮ
нОХЯЮМХЕ: | бЙКЧВЮЕР ХКХ БШЙКЧВЮЕР ПЮАНРС ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХЪ |
---|---|
яХМРЮЙЯХЯ: | RewriteEngine on|off |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | RewriteEngine off |
йНМРЕЙЯР: | server configvirtual hostdirectory.htaccess |
пЮГПЕЬЕМХЕ: | FileInfo |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
дХПЕЙРХБЮ RewriteEngine
БЙКЧВЮЕР ХКХ
БШЙКЧВЮЕР ПЮАНРС ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ. еЯКХ НМЮ СЯРЮМНБКЕМЮ Б═ОНКНФЕМХЕ
off
ЩРНР ЛНДСКЭ ЯНБЯЕЛ МЕ═ПЮАНРЮЕР.
нМ═ДЮФЕ МЕ═НАМНБКЪЕР ОЕПЕЛЕММШЕ НЙПСФЕМХЪ SCRIPT_URx
.
хЯОНКЭГСИРЕ ЩРС ДХПЕЙРХБС ДКЪ БШЙКЧВЕМХЪ ЩРНЦН ЛНДСКЪ БЛЕЯРН
ОПНЯРНЦН ГЮЙНЛЛЕМРХПНБЮМХЪ ДХПЕЙРХБ RewriteRule
!
нРЛЕРЭРЕ, ВРН ОН-СЛНКВЮМХЧ, МЮЯРПНИЙХ ОПЕНАПЮГНБЮМХИ МЕ═ МЮЯКЕДСЧРЯЪ. щРН НГМЮВЮЕР ВРН БШ═ДНКФМШ ХЛЕРЭ
RewriteEngine on
ДХПЕЙРХБС ДКЪ ЙЮФДНЦН БХПРСЮКЭМНЦН УНЯРЮ
Б═ЙНРНПНЛ БШ═УНРХРЕ ХЯОНКЭГНБЮРЭ ЩРНР ЛНДСКЭ.
RewriteLock дХПЕЙРХБЮ
нОХЯЮМХЕ: | сЯРЮМЮБКХБЮЕР ХЛЪ ТЮИКЮ ХЯОНКЭГСЕЛНЦН ДКЪ RewriteMap ЯХМУПНМХГЮЖХХ |
---|---|
яХМРЮЙЯХЯ: | RewriteLock file-path |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | None |
йНМРЕЙЯР: | server config |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
щРЮ ДХПЕЙРХБЮ НОПЕДЕКЪЕР ХЛЪ ТЮИКЮ ЯХМУПНМХГЮЖХХ
ЙНРНПШИ МСФЕМ mod_rewrite ДКЪ ЯБЪГХ Я═RewriteMap
ОПНЦПЮЛЛЮЛХ. яДЕКЮИРЕ ЩРНР ТЮИК КНЙЮКЭМШЛ (ПЮГЛЕЫЕММШЛ МЕ═МЮ═ NFS-ЯЛНМРХПНБЮММНЛ ПЕЯСПЯЕ) ЙНЦДЮ БШ═УНРХРЕ ХЯОНКЭГНБЮРЭ ОПНЦПЮЛЛС ДКЪ
ЯНГДЮМХЪ ЮЯЯНЖХЮРХБМНЦН ЛЮЯЯХБЮ ОПЕНАПЮГНБЮМХИ.
щРН МЕ═ЪБКЪЕРЯЪ НАЪГЮРЕКЭМШЛ ДКЪ ДПСЦХУ РХОНБ РЮЙХУ ЛЮЯЯХБНБ.
RewriteLog дХПЕЙРХБЮ
нОХЯЮМХЕ: | сЯРЮМЮБКХБЮЕР ХЛЪ ТЮИКЮ ХЯОНКЭГСЕЛНЕ ДКЪ БЕДЕМХЪ ФСПМЮКЮ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХЪ |
---|---|
яХМРЮЙЯХЯ: | RewriteLog file-path |
йНМРЕЙЯР: | server configvirtual host |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
дХПЕЙРХБЮ RewriteLog
СЯРЮМЮБКХБЮЕР ХЛЪ
ТЮИКЮ Ю═ЙНРНПНЛ ЯЕПБЕП БЕДЕР ФСПМЮК КЧАШУ ОПНХЯУНДЪЫХУ ДЕИЯРБХИ
ОН═ОПЕНАПЮГНБЮМХЪЛ URL. еЯКХ ЩРН ХЛЪ МЕ═МЮВХМЮЕРЯЪ ЯН═ЯКЩЬЮ
('/
') Б═ЩРНЛ ЯКСВЮЕ ОСРЭ ЯВХРЮЕРЯЪ НР═ Server Root. б═ЙНМТХЦСПЮЖХНММНЛ ТЮИКЕ ЯЕПБЕПЮ ЩРЮ ДХПЕЙРХБЮ
ДНКФМЮ БЯРЕПВЮРЭЯЪ РНКЭЙН НДХМ ПЮГ.
/dev/null
, ОНРНЛС ВРН
УНРЪ ЛЕУЮМХГЛ ОПЕНАПЮГНБЮМХИ Х═МЕ═ОПНХГБНДХР БШБНД Б═ТЮИК ФСПМЮКЮ Б═ЩРНЛ
ЯКСВЮЕ, БМСРПХ НМ═БЯЕ ЕЫ╦ БЕДЕР ФСПМЮКХГЮЖХЧ.
щРН ГЮЛЕДКХР ЯЕПБЕП АЕГ ЙЮЙХУ-КХАН ОПЕХЛСЫЕЯРБ
ДКЪ ЮДЛХМХЯРПЮРНПЮ! дКЪ НРЙКЧВЕМХЪ БЕДЕМХЪ ФСПМЮКЮ КХАН
СДЮКХРЕ КХАН ГЮЙНЛЛЕМРХПСИРЕ ДХПЕЙРХБС RewriteLog
КХАН ХЯОНКЭГСИРЕ RewriteLogLevel 0
!
аЕГНОЮЯМНЯРЭ
яЛНРПХРЕ ДНЙСЛЕМР Apache Security Tips ДКЪ АНКЕЕ ОНДПНАМНИ ХМТНПЛЮЖХХ Н═РНЛ ОНВЕЛС БШ═ЛНФЕРЕ АШРЭ СЪГБХЛШ ЕЯКХ Б═ЙЮРЮКНЦХ ЦДЕ УПЮМЪРЯЪ ТЮИКШ ФСПМЮКНБ ПЮГПЕЬЕМЮ ГЮОХЯЭ ЙНЛС СЦНДМН ЙПНЛЕ ОНКЭГНБЮРЕКЪ НР═ХЛЕМХ ЙНРНПНЦН ГЮОСЯЙЮЕРЯЪ ЯЕПБЕП.оПХЛЕП
RewriteLog "/usr/local/var/apache/logs/rewrite.log"
RewriteLogLevel дХПЕЙРХБЮ
нОХЯЮМХЕ: | сЯРЮМЮБКХБЮЕР СПНБЕМЭ ДЕРЮКХГЮЖХХ ОПХ ФСПМЮКХГЮЖХХ ДЕИЯРБХИ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ |
---|---|
яХМРЮЙЯХЯ: | RewriteLogLevel Level |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | RewriteLogLevel 0 |
йНМРЕЙЯР: | server configvirtual host |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
дХПЕЙРХБЮ RewriteLogLevel
СЯРЮМЮБКХБЮЕР
СПНБЕМЭ ДЕРЮКХГЮЖХХ ФСПМЮКЮ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ. оН-СЛНКВЮМХЧ СПНБЕМЭ 0═ НГМЮВЮЧЫХИ ВРН ФСПМЮКХГЮЖХЪ МЕ═БЕДЕРЯЪ, Б═РН═БПЕЛЪ ЙЮЙ 9═ХКХ АНКЕЕ НГМЮВЮЕР
ВРН ГЮОХЯШБЮЧРЯЪ ОПЮЙРХВЕЯЙХ БЯЕ ДЕИЯРБХЪ.
дКЪ НРЙКЧВЕМХЪ ФСПМЮКХГЮЖХХ ДЕИЯРБХИ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ ОПНЯРН СЯРЮМНБХРЕ СПНБЕМЭ МЮ═0.═щРН НРЙКЧВЮЕР БЕДЕМХЕ ФСПМЮКЮ ДКЪ БЯЕУ ДЕИЯРБХИ ОН═ОПЕНАПЮГНБЮМХЪЛ.
оПХЛЕП
RewriteLogLevel 3
RewriteMap дХПЕЙРХБЮ
нОХЯЮМХЕ: | нОПЕДЕКЪЕР ТСМЙЖХЧ ЯНГДЮМХЪ ЮЯЯНЖХЮРХБМНЦН ЛЮЯЯХБЮ ДКЪ ОНХЯЙЮ ОН═ЙКЧВС |
---|---|
яХМРЮЙЯХЯ: | RewriteMap MapNameMapType:MapSource |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | МЕР |
йНМРЕЙЯР: | server configvirtual host |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
яНБЛЕЯРХЛНЯРЭ: | бШАНП ПЮГМШУ РХОНБ dbm ДНЯРСОЕМ Б═Apache 2.0.41═Х═АНКЕЕ ОНГДМХУ БЕПЯХЪУ |
дХПЕЙРХБЮ RewriteMap
ЮЯЯНЖХЮРХБМШИ ЛЮЯЯХБ ОПЕНАПЮГНБЮМХИ, ЙНРНПШИ
ЛНФЕР АШРЭ ХЯОНКЭГНБЮМ Б═ОПЮБХКЮУ ОПЕНАПЮГНБЮМХИ Х═ХЯОНКЭГСЧЫХИ
ЯННРБЕРЯРБСЧЫХЕ ТСМЙЖХХ ДКЪ БЯРЮБЙХ/ХГБКЕВЕМХЪ ЩКЕЛЕМРНБ, ДКЪ ОНХЯЙЮ ОН═ЙКЧВС
ЯННРБЕРЯРБСЧЫХУ ГМЮВЕМХИ. хЯРНВМХЙ ЩРНЦН ОНХЯЙЮ ЛНФЕР ХЛЕРЭ ПЮГКХВМШИ РХО.
MapName ЩРН ХЛЪ ЛЮЯЯХБЮ ЙНРНПНЕ АСДЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ОНХЯЙЮ ЯННРБЕРЯРБСЧЫЕЦН ГМЮВЕМХЪ ХГ═ЛЮЯЯХБЮ Б═ОПЮБХКЕ ОПЕНАПЮГНБЮМХЪ ВЕПЕГ НДХМ ХГ═ЯКЕДСЧЫХУ ЙНМЯРПСЙРНПНБ:
${
MapName:
LookupKey}
${
MapName:
LookupKey|
DefaultValue}
йНЦДЮ БЯРПЕВЮЕРЯЪ ОНДНАМЮЪ ЙНМЯРПСЙЖХЪ, ОПНХЯУНДХР НАПЮЫЕМХЕ Й═ ЛЮЯЯХБС MapName Х═ОНХЯЙ ГМЮВЕМХЪ ЯНОНЯРЮБКЕММНЦН ЙКЧВС LookupKey. еЯКХ МЮИДЕМН ХЯЙНЛНЕ ГМЮВЕМХЕ ЙКЧВЮ, ОПНХЯУНДХР ХГБКЕВЕМХЕ ГМЮВЕМХЪ SubstValue Я═ОНЛНЫЭЧ ЯННРБЕРЯРБСЧЫЕИ ТСМЙЖХХ. еЯКХ ЙКЧВ МЕ═МЮИДЕМ РНЦДЮ ОПНХЯУНДХР ОНДЯРЮМНБЙЮ DefaultValue ХКХ ОСЯРНИ ЯРПНЙХ ЕЯКХ МЕ═СЙЮГЮМЮ DefaultValue.
лНЦСР АШРЭ ХЯОНКЭГНБЮМШ ЯКЕДСЧЫХЕ ЙНЛАХМЮЖХХ РХОЮ ТСМЙЖХХ═≈ MapType ДКЪ БЯРЮБЙХ/ХГБКЕВЕМХЪ ЩКЕЛЕМРНБ ЛЮЯЯХБЮ Х═ MapSource═≈ ЯЮЛНЦН ЮЯЯНЖХЮРХБМНЦН ЛЮЯЯХБЮ:
- оПНЯРНИ РЕЙЯР
MapType:txt
, MapSource: оСРЭ Й═ЯСЫЕЯРБСЧЫЕЛС ТЮИКС Б═ТЮИКНБНИ ЯХЯРЕЛЕ UnixщРН ЯРЮМДЮПРМЮЪ НОЖХЪ ДКЪ ЯНГДЮМХЪ ЮЯЯНЖХЮРХБМНЦН ЛЮЯЯХБЮ ЦДЕ MapSource ЩРН ОПНЯРНИ РЕЙЯРНБШИ ASCII ТЮИК ЯНДЕПФЮЫХИ КХАН ОСЯРШИ ЯРПНВЙХ, ЯРПНВЙХ ЙНЛЛЕМРЮПХЕБ (МЮВХМЮЧЫХЕЯЪ Я═ЯХЛБНКЮ '#') КХАН ОЮПШ ОНДНАМШЕ ЯКЕДСЧЫХЛ═≈ НДМЮ Б═ЯРПНВЙЕ:
MatchingKeySubstValue
оПХЛЕП
## ## map.txt -- ЛЮЯЯХБ ОПЕНАПЮГНБЮМХИ ## Ralf.S.Engelschall rse # Bastard Operator From Hell Mr.Joe.Average joe # Mr. Average
RewriteMap real-to-user txt:/path/to/file/map.txt
- оПНХГБНКЭМШИ ОПНЯРНИ РЕЙЯР
MapType:rnd
, MapSource: оСРЭ Й═ЯСЫЕЯРБСЧЫЕЛС ТЮИКС Б═ТЮИКНБНИ ЯХЯРЕЛЕ UnixщРНР БЮПХЮМР ХДЕМРХВЕМ БЮПХЮМРС Я═ОПНЯРШЛ РЕЙЯРНЛ ОПХБЕД╦ММНЛ БШЬЕ МН═ЯН═ЯОЕЖХЮКЭМНИ НЯНАЕММНЯРЭЧ ОНЯР-НАПЮАНРЙХ: оНЯКЕ МЮУНФДЕМХЪ ЙЮЙСЧ-КХАН БЕКХВХМС ОПНХГБНДХРЯЪ Е╦═ЮМЮКХГ МЮ═ОПЕДЛЕР МЮУНФДЕМХЪ ЯХЛБНКНБ ╚
|
╩ ЙНРНПШЕ ХЛЕЧР ГМЮВЕМХЕ КНЦХВЕЯЙНЦН ╚ХКХ╩. дПСЦХЛХ ЯКНБЮЛХ НМХ НГМЮВЮЧР МЮАНП ЮКЭРЕПМЮРХБМШУ БЮПХЮМРНБ Х═БШАНП БНГБПЮЫЮЕЛНИ БЕКХВХМШ ХГ═МХУ ОПНХГБНДХРЯЪ ОПНХГБНКЭМН. уНРЪ ЩРН ЙЮФЕРЯЪ АЕГСЛХЕЛ Х═ЮАЯНКЧРМН АЕЯОНКЕГМШЛ, ЩРН Б═ДЕИЯРБХРЕКЭМНЯРХ ХЯОНКЭГСЕРЯЪ ДКЪ АЮКЮМЯХПНБЙХ МЮЦПСГЙХ Б═ЯХРСЮЖХЪУ Я═НАПЮРМШЛ ОПНЙЯХ ЦДЕ ОПНХЯУНДХР ОНХЯЙ ХЛЕМ ЯЕПБЕПНБ. мЮОПХЛЕП:## ## map.txt -- ЛЮЯЯХБ ОПЕНАПЮГНБЮМХИ ## static www1|www2|www3|www4 dynamic www5|www6
RewriteMap servers rnd:/path/to/file/map.txt
- уЩЬ ТЮИК
MapType:dbm[=type]
, MapSource: оСРЭ Й═ЯСЫЕЯРБСЧЫЕЛС ТЮИКС Б═ТЮИКНБНИ ЯХЯРЕЛЕ UnixгДЕЯЭ, ХЯРНВМХЙ═≈ ЩРН ДБНХВМШИ ТЮИК DBM ТНПЛЮРЮ ЯНДЕПФЮЫХИ РН═ФЕ═ЯЮЛНЕ ЯНДЕПФХЛНЕ ВРН Х═ОПНЯРНИ РЕЙЯРНБШИ ТЮИК, НДМЮЙН Б═ЯОЕЖХЮКЭМНЛ БХДЕ, НОРХЛХГХПНБЮММНЛ ДКЪ ДЕИЯРБХРЕКЭМН АШЯРПНЦН ОНХЯЙЮ. щРНР РХО ЛНФЕР АШРЭ sdbm, gdbm, ndbm, ХКХ db═Б═ГЮБХЯХЛНЯРХ НР═МЮЯРПНЕЙ ОПХ ЙНЛОХКЪЖХХ. еЯКХ РХО НОСЫЕМ, БШАХПЮЕРЯЪ РХО СЯРЮМНБКЕММШИ ОН-СЛНКВЮМХЧ ОПХ ЙНЛОХКЪЖХХ. бШ═ЛНФЕРЕ ЯНГДЮБЮРЭ РЮЙНИ ТЮИК КЧАНИ СРХКХРНИ DBM ХКХ ЯКЕДСЧЫХЛ Perl ЯЙПХОРНЛ. сАЕДХРЕЯЭ ВРН НМ═МЮЯРПНЕМ ДКЪ ЯНГДЮМХЪ РПЕАСЕЛНЦН РХОЮ DBM ТЮИКЮ. щРНР ОПХЛЕП ЯНГДЮЕР ТЮИК NDBM.
#!/path/to/bin/perl ## ## txt2dbm -- convert txt map to dbm format ## use NDBM_File; use Fcntl; ($txtmap, $dbmmap) = @ARGV; open(TXT, "<$txtmap") or die "Couldn't open $txtmap!\n"; tie (%DB, 'NDBM_File', $dbmmap,O_RDWR|O_TRUNC|O_CREAT, 0644) or die "Couldn't create $dbmmap!\n"; while (<TXT>) { next if (/^\s*#/ or /^\s*$/); $DB{$1} = $2 if (/^\s*(\S+)\s+(\S+)/); } untie %DB; close(TXT);
$ txt2dbm map.txt map.db
- бМСРПЕММЪЪ ТСМЙЖХЪ
MapType:int
, MapSource: БМСРПЕММЪЪ ТСМЙЖХЪ ApacheгДЕЯЭ, ХЯРНВМХЙ═≈ ЩРН ЙЮЙЮЪ-КХАН БМСРПЕММЪЪ ТСМЙЖХЪ Apache. б═МЮЯРНЪЫЕЕ БПЕЛЪ БШ═МЕ═ЛНФЕРЕ ЯНГДЮБЮРЭ ЯБНХ ЯНАЯРБЕММШЕ ТСМЙЖХХ, НДМЮЙН СФЕ ЯСЫЕЯРБСЧР ЯКЕДСЧЫХЕ ТСМЙЖХХ:
- toupper:
оПЕНАПЮГСЕР ЙКЧВ ОНХЯЙЮ Б═БЕПУМХИ ПЕЦХЯРП. - tolower:
оПЕНАПЮГСЕР ЙКЧВ ОНХЯЙЮ Б═МХФМХИ ПЕЦХЯРП. - escape:
рПЮМЯКХПСЕР ЯОЕЖХЮКЭМШЕ ЯХЛБНКШ Б═ЙКЧВЕ ОНХЯЙЮ Б═ ХУ═ВХЯКНБШЕ ЙНДШ. - unescape:
рПЮМЯКХПСЕР ВХЯКНБШЕ ЙНДШ Б═ЙКЧВЕ ОНХЯЙЮ НАПЮРМН Б═ ЯОЕЖХЮКЭМШЕ ЯХЛБНКШ.
- toupper:
- бМЕЬМЪЪ ОПНЦПЮЛЛЮ ОПЕНАПЮГНБЮМХЪ
MapType:prg
, MapSource: оСРЭ Й═ЯСЫЕЯРБСЧЫЕЛС ТЮИКС Б═ТЮИКНБНИ ЯХЯРЕЛЕ UnixгДЕЯЭ, ХЯРНВМХЙ═≈ ЩРН ОПНЦПЮЛЛЮ, Ю═МЕ═ТЮИК Я═ЮЯЯНЖХЮРХБМШЛ ЛЮЯЯХБНЛ. дКЪ Е╦═ЯНГДЮМХЪ БШ═ЛНФЕРЕ ХЯОНКЭГНБЮРЭ КЧАНИ БШАПЮММШИ ЪГШЙ, НДМЮЙН ПЕГСКЭРЮР ДНКФЕМ АШРЭ ХЯОНКМЪЕЛШЛ ТЮИКНЛ (Р.Е., КХАН НАЗЕЙРМШЛ ЙНДНЛ КХАН ЯЙПХОРНЛ Я═ЛЮЦХВЕЯЙНИ ОЕПБНИ ЯРПНВЙНИ '
#!/path/to/interpreter
').щРЮ ОПНЦПЮЛЛЮ ГЮОСЯЙЮЕРЯЪ НДХМ ПЮГ ОПХ ГЮОСЯЙЕ ЯЕПБЕПЮ Apache Х═ГЮРЕЛ БГЮХЛНДЕИЯРБСЕР Я═ЛЕУЮМХГЛНЛ ОПЕНАПЮГНБЮМХИ ВЕПЕГ ТЮИКНБШЕ НАПЮАНРВХЙХ
stdin
(ОНРНЙ ББНДЮ) Х═stdout
(ОНРНЙ БШБНДЮ). дКЪ ЙЮФДНЦН ОНХЯЙЮ Б═ЛЮЯЯХБЕ, ЯННРБЕРЯРБСЧЫХИ ЙКЧВ ДКЪ ОНХЯЙЮ, АСДЕР ОНКСВЮРЭЯЪ Б═БХДЕ ЯРПНЙХ, ОНДЮБЮЕЛНИ МЮ═stdin
Х═НЙЮМВХБЮЧЫЕИЯЪ ЯХЛБНКНЛ ОЕПЕБНДЮ ЯРПНЙХ. гЮРЕЛ ЩРЮ ОПНЦПЮЛЛЮ ДНКФМЮ БЕПМСРЭ ГМЮВЕМХЕ МЮИДЕММНИ БЕКХВХМШ Б═stdout
Б═БХДЕ ЯРПНЙХ НЙЮМВХБЮЧЫЕИЯЪ ЯХЛБНКНЛ ОЕПЕБНДЮ ЯРПНЙХ КХАН ЯРПНЙНИ ХГ═ВЕРШП╦У ЯХЛБНКНБ ╚NULL
╩ ЕЯКХ ОНХЯЙ МЕСДЮВЕМ (Р.Е., ДКЪ ЯННРБЕРЯРБСЧЫЕЦН ГМЮВЕМХЪ ЙКЧВЮ МЕ═МЮИДЕМН МХЙЮЙНЦН ГМЮВЕМХЪ). рПХБХЮКЭМЮЪ ОПНЦПЮЛЛЮ ПЕЮКХГСЧЫЮЪ ЛЮЯЯХБ 1:1 (Р.Е., ЙКЧВ == ГМЮВЕМХЕ) ЛНФЕР БШЦКЪДЕРЭ РЮЙ:#!/usr/bin/perl $| = 1; while (<STDIN>) { # ...put here any transformations or lookups... print $_; }
нДМЮЙН АСДЭРЕ НВЕМЭ НЯРНПНФМШ:
- "Keep it═simple, stupid" (KISS)═≈ ДЕКЮИ ЩРН ОПНЫЕ, ДСПЮВНЙ, ОНРНЛС ВРН ЕЯКХ ЩРЮ ОПНЦПЮЛЛЮ ГЮБХЯМЕР═≈ ЩРН ОНБЕЯХР ЯЕПБЕП Apache ЙНЦДЮ БЯРПЕРХРЯЪ ОПЮБХКН ХЯОНКЭГСЧЫЕЕ ЩРНР ЛЮЯЯХБ (ЯНГДЮБЮЕЛШИ БМЕЬМЕИ ОПНЦПЮЛЛНИ).
- дКЪ ХГАЕФЮМХЪ ПЮЯОПНЯРПЮМЕММНИ НЬХАЙХ: МХЙНЦДЮ МЕ═ДЕКЮИРЕ АСТЕПХГНБЮММШИ ББНД/БШБНД
ДКЪ
stdout
! щРН БШГНБЕР АЕЯЙНМЕВМНЕ ГЮЖХЙКХБЮМХЕ! нРЯЧДЮ ╚$|=1
╩ Б═БШЬЕОПХБЕДЕММНЛ ОПХЛЕПЕ┘ - хЯОНКЭГСИРЕ ДХПЕЙРХБС
RewriteLock
ДКЪ НОПЕДЕКЕМХЪ ТЮИКЮ АКНЙХПНБНЙ ЙНРНПШИ mod_rewrite ЛНФЕР ХЯОНКЭГНБЮРЭ ДКЪ ЯХМУПНМХГЮЖХХ ЯБЪГХ Я═ЩРНИ ОПНЦПЮЛЛНИ. оН-СЛНКВЮМХЧ РЮЙЮЪ ЯХМУПНМХГЮЖХЪ МЕ═ОПНХГБНДХРЯЪ.
дХПЕЙРХБЮ RewriteMap
ЛНФЕР БЯРПЕВЮРЭЯЪ АНКЕЕ
НДМНЦН ПЮГЮ. дКЪ ЙЮФДНЦН ЛЮЯЯХБЮ ХЯОНКЭГСИРЕ НДМС
RewriteMap
ДХПЕЙРХБС ДКЪ НАЗЪБКЕМХЪ ТЮИКЮ
Я═ЛЮЯЯХБНЛ ОПЕНАПЮГНБЮМХИ. б═РН═БПЕЛЪ ЙЮЙ БШ═МЕ═ЛНФЕРЕ НОПЕДЕКЪРЭ ЛЮЯЯХБ
Б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ, ЕЦН ХЯОНКЭГНБЮМХЕ Б═ЩРНЛ ЙНМРЕЙЯРЕ ЙНМЕВМН ФЕ═БНГЛНФМН.
гЮЛЕВЮМХЕ
дКЪ ОПНЯРНЦН РЕЙЯРНБНЦН Х═DBM ТЮИКНБ ЙКЧВХ ОНХЯЙЮ ЙЩЬХПСЧРЯЪ ЪДПНЛ ДН═РЕУ ОНП ОНЙЮ МЕ═ХГЛЕМХРЯЪ РХОmtime
ТЮИКЮ Я═ЛЮЯЯХБНЛ
ХКХ ОНЙЮ МЕ═ОПНХГНИДЕР ПЕЯРЮПР ЯЕПБЕПЮ. рЮЙХЛ НАПЮГНЛ, БШ═ЛНФЕРЕ ХЯОНКЭГНБЮРЭ
ЮЯЯНЖХЮРХБМШЕ ЛЮЯЯХБШ Б═ОПЮБХКЮУ ЙНРНПШЕ ХЯОНКЭГСЧРЯЪ ДКЪ ЙЮФДНЦН
ГЮОПНЯЮ. щРН МЕ═ОПНАКЕЛЮ, ОНРНЛС ВРН БМЕЬМХИ ОНХЯЙ ОПНХЯУНДХР РНКЭЙН НДХМ ПЮГ!
RewriteOptions дХПЕЙРХБЮ
нОХЯЮМХЕ: | сЯРЮМЮБКХБЮЕР ЙНЕ-ЙЮЙХЕ ЯОЕЖХЮКЭМШЕ НОЖХХ ДКЪ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ |
---|---|
яХМРЮЙЯХЯ: | RewriteOptions Options |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | None |
йНМРЕЙЯР: | server configvirtual hostdirectory.htaccess |
пЮГПЕЬЕМХЕ: | FileInfo |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
дХПЕЙРХБЮ RewriteOptions
СЯРЮМЮБКХБЮЕР МЕЙНРНПШЕ
ЯОЕЖХЮКЭМШЕ НОЖХХ ДКЪ РЕЙСЫЕИ ЙНМТХЦСПЮЖХХ Б═ЙНМРЕЙЯРЕ ЯЕПБЕПЮ
ХКХ ЙЮРЮКНЦЮ. яРПНЙХ Option ЛНЦСР ХЛЕРЭ
ЯКЕДСЧЫХИ БХД:
- '
inherit
'
щРН ОПХБНДХР Б═ДЕИЯРБХЕ МЮЯКЕДНБЮМХЕ РЕЙСЫЕИ ЙНМТХЦСПЮЖХЕИ ЙНМТХЦСПЮЖХХ ПНДХРЕКЪ. б═ЙНМРЕЙЯРЕ БХПРСЮКЭМНЦН ЯЕПБЕПЮ ЩРН НГМЮВЮЕР ВРН ЮЯЯНЖХЮРХБМШЕ ЛЮЯЯХБШ, СЯКНБХЪ Х═ОПЮБХКЮ НЯМНБМНЦН ЯЕПБЕПЮ МЮЯКЕДСЧРЯЪ. б═ЙНМРЕЙЯРЕ ЙЮРЮКНЦЮ ЩРН НГМЮВЮЕР ВРН СЯКНБХЪ Х═ОПЮБХКЮ Б═ЙНМТХЦСПЮЖХНММШУ ТЮИКЮУ.htaccess
ПНДХРЕКЭЯЙХУ ЙЮРЮКНЦНБ МЮЯКЕДСЧРЯЪ.
RewriteRule дХПЕЙРХБЮ
нОХЯЮМХЕ: | нОПЕДЕКЪЕР ОПЮБХКЮ ДКЪ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИ |
---|---|
яХМРЮЙЯХЯ: | RewriteRule ьЮАКНМоНДЯРЮМНБЙЮ |
гМЮВЕМХЕ ОН СЛНКВЮМХЧ: | None |
йНМРЕЙЯР: | server configvirtual hostdirectory.htaccess |
пЮГПЕЬЕМХЕ: | FileInfo |
яРЮРСЯ: | пЮЯЬХПЕМХЕ |
лНДСКЭ: | mod_rewrite |
яНБЛЕЯРХЛНЯРЭ: | тКЮЦ cookie ДНЯРСОЕМ Б═Apache 2.0.40═Х═АНКЕЕ ОНГДМХУ. |
дХПЕЙРХБЮ RewriteRule
Х═ЕЯРЭ МЮЯРНЪЫЮЪ ПЮАНВЮЪ КНЬЮДЙЮ
ОПЕНАПЮГНБЮМХИ. щРЮ ДХПЕЙРХБЮ ЛНФЕР БЯРПЕВЮРЭЯЪ АНКЕЕ НДМНЦН ПЮГЮ.
йЮФДЮЪ ДХПЕЙРХБЮ, Б═ЩРНЛ ЯКСВЮЕ, НОПЕДЕКЪЕР НДМН ОПЮБХКН ОПЕНАПЮГНБЮМХЪ.
оНПЪДНЙ НОПЕДЕКЕМХИ ЩРХУ ОПЮБХК
БЮФЕМ, ОНРНЛС ВРН ЩРНР ОНПЪДНЙ ХЯОНКЭГСЕРЯЪ ОПХ
НАПЮАНРЙЕ ОПЮБХК БН═БПЕЛЪ ПЮАНРШ.
ьЮАКНМ ЩРН perl ЯНБЛЕЯРХЛНЕ ПЕЦСКЪПМНЕ БШПЮФЕМХЕ ЙНРНПНЕ ОПХЛЕМЪЕРЯЪ Й═РЕЙСЫЕЛС URL. гДЕЯЭ ОНД ╚РЕЙСЫХЛ╩ ОНДПЮГСЛЕБЮЕРЯЪ ГМЮВЕМХЕ URL ЙНЦДЮ ОПХЛЕМЪЕРЯЪ ЩРН ОПЮБХКН. щРНР URL МЕ═НАЪГЮРЕКЭМН ЯНБОЮДЮЕР Я═ОЕПБНМЮВЮКЭМН ГЮОПНЬЕММШЛ URL, ОНРНЛС ВРН КЧАНЕ ЙНКХВЕЯРБН ОПЮБХК БНГЛНФМН СФЕ АШКХ ОПХЛЕМЕМШ Й═МЕЛС Х═ ЯННРБЕРЯРБЕММН ОПЕНАПЮГНБЮКХ ЕЦН.
мЕЙНРНПШЕ СЙЮГЮМХЪ ОН═ЯХМРЮЙЯХЯС ПЕЦСКЪПМШУ БШПЮФЕМХИ:
рЕЙЯР:.
кЧАНИ НДХМНВМШИ ЯХЛБНК[
chars]
йКЮЯЯ ЯХЛБКНКБ: нДХМ ХГ ЯХЛБНКНБ[^
chars]
йКЮЯЯ ЯХЛБКНКБ: мХ НДХМ ХГ ЯХЛБНКНБ text1|
text2 юКЭРЕПМЮРХБЮ: text1 ХКХ text2 йБЮМРНПШ (ЯХЛБНКШ ДКЪ НАНГМЮВЕМХЪ ЙНКХВЕЯРБЕММШУ НРМНЬЕМХИ):?
0 ХКХ 1 ХГ ОПЕДЬЕЯРБСЧЫЕЦН РЕЙЯРЮ*
0 ХКХ N ХГ ОПЕДЬЕЯРБСЧЫЕЦН РЕЙЯРЮ (N > 0)+
1 ХКХ N ХГ ОПЕДЬЕЯРБСЧЫЕЦН РЕЙЯРЮ (N > 1) цПСООХПНБЙЮ:(
text)
цПСООХПНБЙЮ РЕЙЯРЮ (КХАН СЯРЮМНБЙЮ ЦПЮМХЖ ЮКЭРЕПМЮРХБШ ХКХ ДКЪ ЯНГДЮМХЪ НАПЮРМШУ ЯБЪГЕИ ЦДЕ N ЦПСООЮ, ЙНРНПЮЪ ЛНФЕР АШРЭ ХЯОНКЭГНБЮМЮ Б RHS ДХПЕЙРХБШ RewriteRule Я$
N) лЮПЙЕПШ:^
лЮПЙЕП МЮВЮКЮ ЯРПНЙХ$
лЮПЙЕП ЙНМЖЮ ЯРПНЙХ щЙПЮМХПНБЮМХЕ:\
char ЩЙПЮМХПНБЮМХЕ ЙНМЙПЕРМНЦН ЯХЛБНКЮ (Й ОПХЛЕПС ДКЪ СЙЮГЮМХЪ ЯХЛБНКНБ ".[]()
" Х Р.Д.)
аНКЕЕ ОНДПНАМСЧ ХМТНПЛЮЖХЧ Н═ПЕЦСКЪПМШУ БШПЮФЕМХЪУ, ЯЛНРПХРЕ Б═ ДНЙСЛЕМРЮЖХХ ОН═ПЕЦСКЪПМШЛ БШПЮФЕМХЪЛ Perl ("perldoc perlre"). еЯКХ БШ═ГЮХМРЕПЕЯНБЮМШ Б═ЕЫ╦ АНКЕЕ ДЕРЮКЭМНИ ХМТНПЛЮЖХХ Н═ПЕЦСКЪПМШУ БШПЮФЕМХЪУ Х═ХУ═ДХЮКЕЙРЮУ (POSIX Х═Р.Д.), ЯЛНРПХРЕ ЯКЕДСЧЫСЧ, ЯОЕЖХЮКЭМН МЮОХЯЮММСЧ ОН═ЩРНИ РЕЛЕ ЙМХЦС:
Mastering Regular Expressions
Jeffrey E.F. Friedl
Nutshell Handbook Series
O'Reilly & Associates, Inc. 1997
ISBN 1-56592-257-3
йПНЛЕ РНЦН, Б═mod_rewrite ЯХЛБНК НРПХЖЮМХЪ (NOT)
('!
')═≈ ДНОСЯЙЮЕЛШИ ОПЕТХЙЯ Б═ЬЮАКНМЕ. щРН ДЮ╦Р
БЮЛ БНГЛНФМНЯРЭ ХМБЕПРХПНБЮРЭ ДЕИЯРБХЕ ЬЮАКНМЮ; МС═Й═ОПХЛЕПС ЯЙЮФЕЛ:
"ЕЯКХ РЕЙСЫХИ URLМЕ ЯНБОЮДЮЕР Я═ЩРХЛ
ЬЮАКНМНЛ". щРН ЛНФЕР АШРЭ ХЯОНКЭГНБЮМН Б═НЯНАШУ ЯКСВЮЪУ, ЙНЦДЮ
ОПНЫЕ МЮИРХ ЬЮАКНМ ДКЪ МЕЯННРБЕРЯРБХЪ, ХКХ Б═ЙЮВЕЯРБЕ ОНЯКЕДМЕЦН ОПЮБХКЮ,
ПЮАНРЮЧЫЕЦН ОН═СЛНКВЮМХЧ.
оПХЛЕВЮМХЕ
оПХ ХЯОНКЭГНБЮМХХ ЯХЛБНКЮ NOT (МЕ) ДКЪ ХМБЕПРХПНБЮМХЪ ДЕИЯРБХЪ ЬЮАКНМЮ БШ═МЕ═ЛНФЕРЕ ХЛЕРЭ ЯЦПСООХПНБЮММШЕ ВЮЯРХ ЦПСООНБШУ ЯХЛБНКНБ Б═ЬЮАКНМЕ. щРН МЕБНГЛНФМН ОНРНЛС ВРН ЙНЦДЮ МЕР ЯННРБЕРЯРБХЪ ЬЮАКНМС, ДКЪ ЦПСОО МЕР МХЙЮЙНЦН ЯНДЕПФХЛНЦН. б═ПЕГСКЭРЮРЕ, ЕЯКХ ХЯОНКЭГСЧРЯЪ ЬЮАКНМШ Я═НРПХЖЮМХЕЛ, БШ═ МЕ═ЛНФЕРЕ ХЯОНКЭГНБЮРЭ$N
Б═ЯРПНЙЮУ ОНДЯРЮМНБНЙ!
оНДЯРЮМНБЙЮ Б═ОПЮБХКЕ ОПЕНАПЮГНБЮМХЪ ЩРН ЯРПНЙЮ АСДЕР ОНДЯРЮБКЪРЭЯЪ (ХКХ АСДЕР ГЮЛЕМЪРЭ) БЛЕЯРН НПХЦХМЮКЭМНЦН URL, ДКЪ ЙНРНПНЦН ЕЯРЭЯНБОЮДЕМХЕ ьЮАКНМС. йПНЛЕ ОПНЯРНЦН РЕЙЯРЮ БШ═ЛНФЕРЕ ХЯОНКЭГНБЮРЭ
- НАПЮРМШЕ ЯБЪГХ
$N
МЮ═ЬЮАКНМШ Б═RewriteRule - НАПЮРМШЕ ЯБЪГХ
%N
МЮ═ОНЯКЕДМХИ ЯННРБЕРЯРБСЧЫХИ ЬЮАКНМ Б═ RewriteCond - ОЕПЕЛЕММШЕ ЯЕПБЕПЮ Б═ЙЮВЕЯРБЕ ОПНБЕПЪЕЛШУ ЯРПНЙ Б═СЯКНБХЪУ ОПЮБХК
(
%{VARNAME}
) - БШГНБШ ГЮОПНЯНБ Й═ЛЮЯЯХБС
(
${mapname:key|default}
)
нАПЮРМШЕ ЯБЪГХ ЩРН $
N
(N=0..9) ХДЕМРХТХЙЮРНПШ ЙНРНПШЕ ГЮЛЕМЪЧРЯЪ
ЯНДЕПФХЛШЛ N-И ЦПСООШ ОНДУНДЪЫЕЦН
ьЮАКНМЮ. оЕПЕЛЕММШЕ ЯЕПБЕПЮ щРН РНФЕ ЯЮЛНЕ
ВРН Х═яПЮБМХБЮЕЛЮЪяРПНЙЮ ДХПЕЙРХБШ RewriteCond
.
гЮОПНЯШ Й═ЛЮЯЯХБС ОПХЬКХ ХГ═ДХПЕЙРХБШ
RewriteMap
РЮЛ НМХ Х═НАЗЪЯМЕМШ.
щРХ РПХ РХОЮ ОЕПЕЛЕММШУ ПЮЯЯЛЮРПХБЮЧРЯЪ Б═ОНПЪДЙЕ, Б═ЙНРНПНЛ НМХ ХДСР Б═ БШЬЕОПХБЕДЕММНЛ ЯОХЯЙЕ.
йЮЙ СФЕ АШКН СОНЛЪМСРН БШЬЕ, БЯЕ ОПЮБХКЮ ОПЕНАПЮГНБЮМХИ ОПХЛЕМЪЧРЯЪ
Я═ХЯОНКЭГНБЮМХЕЛ оНДЯРЮМНБЙХ (Б ОНПЪДЙЕ, Б═ЙНРНПНЛ
НМХ НОПЕДЕКЕМШ Б═ЙНМТХЦСПЮЖХНММНЛ ТЮИКЕ). URL ОНКМНЯРЭЧ
ГЮЛЕМЪЕРЯЪ оНДЯРЮМНБЙНИ Х═ОПНЖЕЯЯ
ОПЕНАПЮГНБЮМХЪ ХДЕР ДН═РЕУ ОНП, ОНЙЮ МЕ═НЯРЮМЕРЯЪ АНКЭЬЕ МХЙЮЙХУ ОПЮБХК,
ЕЯКХ РНКЭЙН НМ═МЕ═ОПЕПБЮМ ЯОЕЖХЮКЭМН, Я═ОНЛНЫЭЧ ТКЮЦЮ
L
═≈ ЯЛ. МХФЕ.
яСЫЕЯРБСЕР ЯОЕЖХЮКЭМЮЪ ЯРПНЙЮ ОНДЯРЮМНБЙХ БХДЮ
'-
' ЙНРНПЮЪ НГМЮВЮЕР: мер
ОНДЯРЮМНБЙХ! гБСВХР ЦКСОН? мЕР, ЩРН ОНКЕГМН ДКЪ
ОПЮБХК ОПЕНАПЮГНБЮМХЪ ЙНРНПШЕ РНКЭЙН ОПНБЕПЪЧР
МЕЙНРНПШЕ URL НДМЮЙН МЕ═ОПНХГБНДЪР ОНДЯРЮМНБНЙ, Р.Е., Б═ ЯБЪГЙЕ Я═ТКЮЦНЛ C (ЖЕОНВЙЮ) БНГЛНФМН ХЛЕРЭ
АНКЕЕ ВЕЛ НДХМ ЬЮАКНМ, ОПХЛЕМЪЕЛШИ ОЕПЕД ОПНБЕДЕМХЕЛ
МЕОНЯПЕДЯРБЕММН ЯЮЛНИ ОНДЯРЮМНБЙХ.
еЫ╦ НДМН ГЮЛЕВЮМХЕ: бШ═ДЮФЕ ЛНФЕРЕ ЯНГДЮБЮРЭ URL, ЯНДЕПФЮЫХЕ ЯРПНЙС ГЮОПНЯЮ, Б═ЯРПНЙЕ ОНДЯРЮМНБЙХ. оПНЯРН ХЯОНКЭГСИРЕ БНОПНЯХРЕКЭМШИ ГМЮЙ БМСРПХ ЯРПНЙХ ОНДЯРЮМНБЙХ ДКЪ СЙЮГЮМХЪ РНЦН, ЯКЕДСЧЫЕЕ ГЮ═МХЛ ЯНДЕПФХЛНЕ ДНКФМН АШРЭ ОПЕНАПЮГНБЮМН Б═ QUERY_STRING (ЯРПНЙС ГЮОПНЯЮ). йНЦДЮ БШ═УНРХРЕ САПЮРЭ ЯСЫЕЯРБСЧЫСЧ ЯРПНЙС ГЮОПНЯЮ, ГЮБЕПЬЮИРЕ ЯРПНЙС ОНДЯРЮМНБЙХ ОПНЯРН БНОПНЯХРЕКЭМШЛ ГМЮЙНЛ.
оПХЛЕВЮМХЕ
еЯРЭ НДМЮ НЯНАЕММНЯРЭ: йНЦДЮ БШ═ОПЕДБЮПЪЕРЕ ОНКЕ ОНДЯРЮМНБЙХ ЯРПНЙНИhttp://
thishost[:thisport],═≈
mod_rewrite НРПЕГЮЕР Е╦═ЮБРНЛЮРХВЕЯЙХ.
щРН ЮБРНЛЮРХВЕЯЙНЕ СЯЕВЕМХЕ ОНДПЮГСЛЕБЮЕЛНЕ ОПХ БМЕЬМЕЛ ПЕДХПЕЙРЕ
URL ОНКЕГМЮЪ Х═БЮФМЮЪ НЯНАЕММНЯРЭ ОПХ ХЯОНКЭГНБЮМХХ Б═ ЯБЪГЙЕ Я═ГЮОПНЯЮЛХ Й═ЛЮЯЯХБЮЛ ОПЕНАПЮГНБЮМХИ ЦЕМЕПХПСЧЫХУ
ХЛЪ УНЯРЮ. бГЦКЪМХРЕ МЮ═ОЕПБШИ ОПХЛЕП, Б═ ПЮГДЕКЕ ОПХЛЕПНБ МХФЕ, ВРНАШ ОНМЪРЭ ЩРН.
оНЛМХРЕ
аЕГСЯКНБМШИ БМЕЬМХИ ПЕДХПЕЙР МЮ═БЮЬ ЯНАЯРБЕММШИ ЯЕПБЕП МЕ═АСДЕР ПЮАНРЮРЭ Я═ОПЕТХЙЯНЛhttp://thishost
ХГ-ГЮ ЩРНИ НЯНАЕММНЯРХ. вРНАШ
ХЯОНКЭГНБЮРЭ РЮЙНИ ЯЮЛНПЕДХПЕЙР, бШ═ДНКФМШ ХЯОНКЭГНБЮРЭ ТКЮЦ
R(ЯЛ. МХФЕ).
б═ОНДЯРЮМНБЙЕ БШ═ЛНФЕРЕ ХЯОНКЭГНБЮРЭ, Б═РНЛ ВХЯКЕ, Х═ЯОЕЖХЮКЭМШЕ ТКЮЦХ ОСРЕЛ ДНАЮБКЕМХЪ ЯКЕДСЧЫЕИ ЙНМЯРПСЙЖХХ:
[
ТКЮЦХ]
Б═ЙЮВЕЯРБЕ РПЕРЭЕЦН ЮПЦСЛЕМРЮ ДХПЕЙРХБШ RewriteRule
.
тКЮЦХ═≈ ЩРН ПЮГДЕК╦ММШИ ГЮОЪРШЛХ, ЯКЕДСЧЫХИ ЯОХЯНЙ ТКЮЦНБ:
-
'
redirect|R
[=code]' (БШГШБЮЕР ПЕДХПЕЙР)
оПЕТХЙЯ Б═оНДЯРЮМНБЙЕ БХДЮhttp://thishost[:thisport]/
(ЯНГДЮЧЫХИ МНБШИ URL ХГ═ЙЮЙНЦН-КХАН URI) ГЮОСЯЙЮЕР БМЕЬМХИ ПЕДХПЕЙР (ОЕПЕМЮОПЮБКЕМХЕ). еЯКХ МЕР МЮЙЮЙНЦН ЙНДЮ Б═ОНДЯРЮМНБЙЕ НРБЕР АСДЕР Я═HTTP ЯРЮРСЯНЛ 302═(бпелеммн оепелеыем). еЯКХ БШ═УНРХРЕ ХЯОНКЭГНБЮРЭ ДПЙЦХЕ ЙНДШ НРБЕРНБ Б═ДХЮОЮГНМЕ 300-400, ОПНЯРН МЮОХЬХРЕ ХУ═Б═БХДЕ ВХЯКЮ ХКХ ХЯОНКЭГСИРЕ НДМН ХГ═ЯКЕДСЧЫХУ ЯХЛБНКХВЕЯЙХУ ХЛ╦М:temp
(ОН-СЛНКВЮМХЧ),permanent
,seeother
. хЯОНКЭГСИРЕ ЩРН Б═ДХПЕЙРХБЮУ, ЙНРНПШЕ ДНКФМШ ОПЕНАПЮГНБШБЮРЭ МЕЙХЕ БХПРСЮКЭМШЕ URL Б═ПЕЮКЭМШЕ Х═БНГБПЮЫЮРЭ ХУ═ЙКХЕМРС, МЮОПХЛЕП, ОПЕНАПЮГНБШБЮРЭ ╚/~
╩ Б═ ╚/u/
╩ ХКХ БЯЕЦДЮ ДНАЮБКЪРЭ ЯКЩЬ Й═/u/
user, Х═Р.Д.оПХЛЕВЮМХЕ: оПХ ХЯОНКЭГНБЮМХХ ЩРНЦН ТКЮЦЮ, САЕДХРЕЯЭ, ВРН ОНКЕ ОНДЯРЮМНБЙХ, ЩРН ПЮАНРЮЧЫХИ URL! еЯКХ ЩРН МЕ═РЮЙ, БШ═ОЕПЕМЮОПЮБКЪЕРЕ Б═МХЙСДЮ! х═ОНЛМХРЕ, ВРН ЯЮЛ ОН═ЯЕАЕ ЩРНР ТКЮЦ, РНКЭЙН ДНОНКМЪЕР URL ЯРПНЙНИ
http://thishost[:thisport]/
, Х═ОПНЖЕЯЯ ОПЕНАПЮГНБЮМХЪ ОПНДНКФЮЕРЯЪ. рЮЙФЕ, НАШВМН БШ═УНРХРЕ НЯРЮМНБХРЭЯЪ Х═ЯДЕКЮРЭ ЩРНР ПЕДХПЕЙР МЕЛЕДКЕММН. дКЪ НЯРЮМНБЙХ ОПНЖЕЯЯЮ ОПЕНАПЮГНБЮМХЪ, БЮЛ РЮЙФЕ МСФМН МЮОХЯЮРЭ ТКЮЦ 'L'. - '
forbidden|F
' (ДЕКЮЕР URL ГЮОПЕЫЕММШЛ)
щРН ДЕКЮЕР РЕЙСЫХИ URL ГЮОПЕЫ╦ММШЛ, МЮОПХЛЕП, ЙКХЕМРС МЕЛЕДКЕММН НРОПЮБКЪЕРЯЪ НРБЕР Я═HTTP ЯРЮРСЯНЛ 403═(гюопеыемн). хЯОНКЭГСИРЕ ЩРНР ТКЮЦ Б═ЯНВЕРЮМХХ Я═ ЯННРБЕРЯРБСЧЫХЛХ RewriteConds ДКЪ АКНЙХПНБЮМХЪ URL ОН═МЕЙНРНПШЛ ЙПХРЕПХЪЛ. - '
gone|G
' (ДЕКЮЕР URL ╚Л╦ПРБШЛ╩)
щРНР ТКЮЦ ДЕКЮЕР РЕЙСЫХИ URL ╚ЛЕПРБШЛ╩, Р.Е., МЕЛЕДКЕММН НРОПЮБКЪЕРЯЪ HTTP НРБЕР ЯН═ЯРЮРСЯНЛ 410═(GONE). хЯОНКЭГСИРЕ ЩРНР ТКЮЦ ДКЪ ЛЮПЙХПНБЙХ ╚ЛЕПРБШЛХ╩ МЕ═ЯСЫЕЯРБСЧЫХЕ АНКЕЕ ЯРПЮМХЖШ. -
'
proxy|P
' (БШГБЮЕР ОПНЙЯХ)
щРНР ТКЮЦ ОНЛЕВЮЕР ОНДЯРЮМНБНВМСЧ ВЮЯРЭ ЙЮЙ БМСРПЕММХИ ГЮОПНЯ ОПНЙЯХ Х═МЕЛЕДКЕММН (Р.Е., ОПНЖЕЯЯ ОПЕНАПЮГНБЮМХЪ ГДЕЯЭ НЯРЮМЮБКХБЮЕРЯЪ) ОПНОСЯЙЮЕР ЕЦН ВЕПЕГ ОПНЙЯХ ЛНДСКЭ. бШ═ДНКФМШ САЕДХРЭЯЪ, ВРН ЯРПНЙЮ ОНДЯРЮМНБЙХ ЩРН ПЕЮКЭМШИ URI (МЮОПХЛЕП, РХОХВМН МЮВХМЮЧЫХИЯЪ Я═http://
hostname), ЙНРНПШИ ЛНФЕР АШРЭ НАПЮАНРЮМ ОПНЙЯХ ЛНДСКЕЛ Apache. еЯКХ ЩРН МЕ═РЮЙ, БШ═ОНКСВХРЕ НЬХАЙС НР═ОПНЙЯХ ЛНДСКЪ. хЯОНКЭГСИРЕ ЩРНР ТКЮЦ ДКЪ РНЦН, ВРНАШ ДНАХРЭЯЪ АНКЕЕ ЛНЫМНИ ПЕЮКХГЮЖХХ ДХПЙЕРХБШ ProxyPass, ХМРЕЦПХПСЧЫЕИ МЕЙНРНПНЕ ЯНДЕПФХЛНЕ МЮ═СДЮКЕММШУ ЯЕПБЕПЮУ, Б═ОПНЯРПЮМЯРБН ХЛ╦М КНЙЮКЭМНЦН ЯЕПБЕПЮ.оПХЛЕВЮМХЕ: дКЪ РНЦН ВРНАШ ЩРН ХЯОНКЭГНБЮРЭ САЕДХРЕЯЭ ВРН С═БЮЯ ЕЯРЭ ПЮАНРЮЧЫХИ ОПНЙЯХ ЛНДСКЭ МЮ═БЮЬЕЛ ЯЕПБЕПЕ Apache. еЯКХ БШ═МЕ═ГМЮЕРЕ ЩРНЦН ОПНБЕПЭРЕ ЕЯРЭ КХ═Б═БШБНДЕ ╚
httpd -l
╩ ЯРПНВЙЮmod_proxy.c
. еЯКХ ДЮ, ЩРХ БНГЛНФМНЯРХ ДНЯРСОМШ mod_rewrite. еЯКХ МЕР, РН═ЯМЮВЮКЮ БШ═ДНКФМШ ОЕПЕЯНАПЮРЭ ОПНЦПЮЛЛС ╚httpd
╩ Я═БЙКЧВЕММШЛ ОПНЙЯХ ЛНДСКЕЛ. - '
last|L
' (ОНЯКЕДМЕЕ ОПЮБХКН)
нЯРЮМНБХРЭ ОПНЖЕЯЯ ОПЕНАПЮГНБЮМХЪ МЮ═ЩРНЛ ЛЕЯРЕ Х═МЕ═ОПХЛЕМЪРЭ АНКЭЬЕ МХЙЮЙХУ ОПЮБХК ОПЕНАПЮГНБЮМХИ. щРН ЯННРБЕРЯРБСЕР НОЕПЮРНПСlast
Б═Perl ХКХ НОЕПЮРНПСbreak
Б═ ЪГШЙЕ C. хЯОНКЭГСИРЕ ЩРНР ТКЮЦ ДКЪ РНЦН, ВРНАШ МЕ═ОПЕНАПЮГНБШБЮРЭ РЕЙСЫХИ URL ДПСЦХЛХ, ЯКЕДСЧЫХЛХ ГЮ═ЩРХЛ, ОПЮБХКЮЛХ ОПЕНАПЮГНБЮМХИ. й═ОПХЛЕПС, ХЯОНКЭГСИРЕ ЩРН ДКЪ ОПЕНАПЮГНБЮМХЪ ЙНПМЕБНЦН URL ХГ═ ('/
') Б═ПЕЮКЭМШИ, МЮОПХЛЕП, '/e/www/
'. - '
next|N
' (ЯКЕДСЧЬХИ ПЮСМД)
оЕПЕГЮОСЯРХРЭ ОПНЖЕЯЯ ОПЕНАПЮГНБЮМХИ (МЮВЮБ Я═ОЕПБНЦН ОПЮБХКЮ). б═ЩРНЛ ЯКСВЮЕ URL ЯМНБЮ ЯНОНЯРЮБКЪЕРЯЪ МЕЙХЛ СЯКНБХЪЛ, МН═МЕ═ НПХЦХМЮКЭМШИ URL, Ю═URL БШЬЕДЬХИ ХГ═ОНЯКЕДМЕЦН ОПЮБХКЮ ОПЕНАПЮГНБЮМХЪ. щРН ЯННРБЕРЯРБСЕР НОЕПЮРНПСnext
Б═Perl ХКХ НОЕПЮРНПСcontinue
ХГ═ЪГШЙЮ C. хЯОНКЭГСИРЕ ЩРНР ТКЮЦ ДКЪ ОЕПЕГЮОСЯЙЮ ОПНЖЕЯЯЮ ОПЕНАПЮГНБЮМХИ, Р.Е., АЕГСЯКНБМНЛС ОЕПЕУНДС МЮ═МЮВЮКН ЖХЙКЮ.
нДМЮЙН АСДЭРЕ НЯРНПНФМШ, ДКЪ РНЦН ВРНАШ МЕ═ЯДЕКЮРЭ АЕЯЙНМЕВМШИ ЖХЙК! - '
chain|C
' (ЯБЪГЭ ЯН═ЯКЕДСЧЫХЛ ОПЮБХКНЛ)
щРНР ТКЮЦ ЯБЪГШБЮЕР РЕЙСЫЕЕ ОПЮБХКН ЯН═ЯКЕДСЧЫХЛ (ЙНРНПНЕ, Б═ЯБНЧ НВЕПЕДЭ, ЛНФЕР АШРЭ ЯБЪГЮМН ЯН═ЯКЕДСЧЫХЛ ГЮ═МХЛ, Х═Р.Д.). щРН ХЛЕЕР ЯКЕДСЧЫХИ ЩТТЕЙР: ЕЯКХ ЕЯРЭ ЯННРБЕРЯРБХЕ ОПЮБХКС, ОПНЖЕЯЯ ОПНДНКФЮЕРЯЪ ЙЮЙ НАШВМН, Р.Е., ТКЮЦ МЕ═ОПНХГБНДХР МХЙЮЙНЦН ЩТТЕЙРЮ. еЯКХ ОПЮБХКН МЕ ЯННРБЕРЯРБСЕР СЯКНБХЧ, БЯЕ ЯКЕДСЧЫХЕ, ЯБЪГЮММШЕ ОПЮБХКЮ, ОПНОСЯЙЮЧРЯЪ. мЮОПХЛЕП, ХЛОНКЭГСИРЕ ЩРН ДКЪ СДЮКЕМХЪ ╚.www
╩ ВЮЯРХ Б═ЙНМТХЦСПЮЖХНММНЛ ОПЮБХКЕ ЙНМРЕЙЯРЮ ЙЮРЮКНЦЮ ПЮАНРЮЧЫЕЦН ЙНЦДЮ БШ═ПЮГПЕЬЮЕРЕ БМЕЬМХИ ПЕДХПЕЙР (ЦДЕ МЕ═ДНКФМН АШРЭ ╚.www
╩!). -
'
type|T
=MIME-РХО' (ОПХМСДХРЕКЭМН СЯРЮМНБХРЭ MIME РХО)
оПХМСДХРЕКЭМН СЯРЮМНБХРЭ MIME-РХО ЖЕКЕБНЦН ТЮИКЮ Б═ MIME-РХО. й═ОПХЛЕПС, ЩРН ЛНФМН ХЯОНКЭГНБЮРЭ ДКЪ ХЛХРЮЖХХmod_alias
ДХПЕЙРХБШScriptAlias
ЙНРНПЮЪ ОПХМСДХРЕКЭМН СЯРЮМЮБКХБЮЕР ДКЪ БЯЕУ ТЮИКНБ БМСРПХ НРНАПЮФЮЕЛНЦН ЙЮРЮКНЦЮ MIME РХО ПЮБМШИ ╚application/x-httpd-cgi
╩. -
'
nosubreq|NS
' (ХЯОНКЭГСЕРЯЪ РНКЭЙН Б═ЯКСВЮЕ МЕБМСРПЕММЕЦН ОНДГЮОПНЯЮ)
щРНР ТКЮЦ ДЮЕР ЙНЛЮМДС ЛЕУЮМХГЛС ОПЕНАПЮГНБЮМХИ ОПНОСЯРХРЭ ДХПЕЙРХБС ЕЯКХ РЕЙСЫХИ ОНДГЮОПНЯ ЪБКЪЕРЯЪ БМСРПЕММХЛ ОНДГЮОПНЯНЛ. й═ОПХЛЕПС, БМСРПЕММХЕ ОНДГЮОПНЯШ Б═Apache ОПНХЯУНДЪР РНЦДЮ, ЙНЦДЮmod_include
ОШРЮЕРЯЪ ОНКСВХРЭ ХМТНПЛЮЖХЧ Н═БНГЛНФМШУ ТЮИКЮУ ОН-СЛНКВЮМХЧ ДКЪ ЙЮРЮКНЦНБ (index.xxx
). оПХ ОНДГЮОПНЯЮУ ЩРН МЕ═БЯЕЦДЮ ОНКЕГМН Х═ДЮФЕ ХМНЦДЮ БШГШБЮЕР ОПНАКЕЛС Б═ПЮАНРЕ БЯЕЦН МЮАНПЮ ДХПЕЙРХБ ОПЕНАПЮГНБЮМХИ. хЯОНКЭГСИРЕ ЩРНР ТКЮЦ ДКЪ ХЯЙКЧВЕМХЪ МЕЙНРНПШУ ОПЮБХК.хЯОНКЭГСИРЕ ЯКЕДСЧЫЕЕ ОПЮБХКН ОН═ЯБНЕЛС СЯЛНРПЕМХЧ: БЯЪЙХИ ПЮГ ЙНЦДЮ БШ═ ОПЕДБЮПЪЕРЕ МЕЙНРНПШЕ URL ОПЕТХЙЯНЛ ОЕПЕДЮБЮЪ ХУ═МЮ═НАПЮАНРЙС CGI-ЯЙПХОРС,═≈ БЕКХЙ ЬЮМЯ ВРН БШ═МЮОНПЕРЕЯЭ МЮ═ОПНАКЕЛШ (ХКХ ДЮФЕ МЮ═МЕМСФМШЕ ХГДЕПФЙХ) Б═ЯКСВЮЕ ОПХЛЕМЕМХЪ ОНДГЮОПНЯНБ. б═ЩРХУ ЯКСВЮЪУ, ХЯОНКЭГСИРЕ ЩРНР ТКЮЦ.
- '
nocase|NC
' (МЕ СВХРШБЮРЭ ПЕЦХЯРП)
щРН ДЕКЮЕР ьЮАКНМ МЕВСЯРБХРЕКЭМШЛ Й═ПЕЦХЯРПС, Р.Е., МЕР ПЮГКХВХИ ЛЕФДС 'A-Z' Х═ 'a-z' ЙНЦДЮ ьЮАКНМ ОПХЛЕМЪЕРЯЪ Й═РЕЙСЫЕЛС URL. - '
qsappend|QSA
' (ДНАЮБКЪРЭ ЯРПНЙС ГЮОПНЯЮ)
щРНР ТКЮЦ СЙЮГШБЮЕР ЛЕУЮМХГЛС ОПЕНАПЮГНБЮМХИ МЮ═ДНАЮБКЕМХЕ Ю═МЕ═ГЮЛЕМС, ЯРПНЙХ ГЮОПНЯЮ ХГ═URL Й═ЯСЫЕЯРБСЧЫЕИ, Б═ЯРПНЙЕ ОНДЯРЮМНБЙХ. хЯОНКЭГСИРЕ ЩРН ЙНЦДЮ БШ═УНРХРЕ ДНАЮБКЪРЭ ДНОНКМХРЕКЭМШЕ ДЮММШЕ Б═ ЯРПНЙС ГЮОПНЯЮ Я═ОНЛНЫЭЧ ДХПЕЙРХБ ОПЕНАПЮГНБЮМХИ. -
'
noescape|NE
' (МЕ ЩЙПЮМХПНБЮРЭ URI ОПХ БШБНДЕ)
щРНР ТКЮЦ МЕ═ДЮ╦Р mod_rewrite ОПХЛЕМЪРЭ НАШВМШЕ ОПЮБХКЮ ЩЙПЮМХПНБЮМХЪ URI Й═ПЕГСКЭРЮРС ОПЕНАПЮГНБЮМХЪ. нАШВМН, ЯОЕЖХЮКЭМШЕ ЯХЛБНКШ (РЮЙХЕ ЙЮЙ '%', '$', ';', Х═РЮЙ ДЮКЕЕ) АСДСР ЩЙПЮМХПНБЮМШ ХУ═ЬЕЯРМЮДЖЮРХПХВМШЛХ ОНДЯРЮМНБЙЮЛХ ('%25', '%24', Х═'%3B', ЯННРБЕРЯРБЕММН); ЩРНР ТКЮЦ МЕ═ДЮЕР ЩРН ДЕКЮРЭ. щРН ОНГБНКЪЕР ЯХЛБНКЮЛ ОПНЖЕМРЮ ОНЪБКЪРЯЪ МЮ═БШУНДЕ , ЙЮЙ Б═ДКЪ ЙНРНПНЦН 'RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]
/foo/zed
' ОПЕНАПЮГНБШБЮКНЯЭ АШ═Б═АЕГНОЮЯМШИ ГЮОПНЯ '/bar?arg=P1=zed
'. -
'
passthrough|PT
' (ОПНОСЯЙЮРЭ ВЕПЕГ ЯКЕДСЧЫХИ НАПЮАНРВХЙ)
щРНР ТКЮЦ ДЮ╦Р ЙНЛЮМДС ЛЕУЮМХГЛС ОПЕНАПЮГНБЮМХИ СЯРЮМЮБКХБЮРЭ ОНКЕuri
БМСРПЕММЕИ ЯРПСЙРСПШrequest_rec
ПЮБМШЛ ОНКЧfilename
. щРНР ТКЮЦ, ОПНЯРН КХЬЭ УХРПШИ РПЧЙ, ДКЪ РНЦН ВРНАШ ХЛЕРЭ БНГЛНФМНЯРЭ НАПЮАНРЙХ БШБНДЮ ДХПЕЙРХБRewriteRule
, ДХПЕЙРХБЮЛХAlias
,ScriptAlias
,Redirect
, Х═Р.Д. ХГ═ДПСЦХУ РПЮМЯКЪРНПНБ URI-ХЛЪ ТЮИКЮ. рПХБХЮКЭМШИ ОПХЛЕП ДКЪ ОНЙЮГЮ ЩРНИ ЯЕЛЮМРХЙХ: ЕЯКХ БШ═УНРХРЕ ОПЕНАПЮГНБЮРЭ/abc
Б═/def
Я═ХЯОНКЭГНБЮМХЕЛ ЛЕУЮМХГЛЮ ОПЕНАПЮГНБЮМХИmod_rewrite
Х═ГЮРЕЛ/def
Б═/ghi
Я═ХЯОНКЭГНБЮМХЕЛmod_alias
:еЯКХ БШ═НОСЯРХРЕ ТКЮЦRewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghiPT
,mod_rewrite
ОПЕЙПЮЯМН ЯДЕКЮЕРЯ ЯБНЧ ПЮАНРС, Р.Е., НМ═ОПЕНАПЮГСЕРuri=/abc/...
Б═filename=/def/...
ЙЮЙ ДНКФЕМ ДЕКЮРЭ ОНКМНЯРЭЧ API-ЯНБЛЕЯРХЛШИ РПЮМЯКЪРНП URI-ХЛЪ ТЮИКЮ. гЮРЕЛ МЮЯРЮ╦Р НВЕПЕДЭmod_alias
ОШРЮЧЫЕЦНЯЪ ЯДЕКЮРЭ ОЕПЕУНД URI-ХЛЪ ТЮИКЮ ЙНРНПШИ Х═МЕ═АСДЕР ПЮАНРЮРЭ.оПХЛЕВЮМХЕ: бШ═ДНКФМШ ХЯОНКЭГНБЮРЭ ЩРНР ТКЮЦ ЕЯКХ БШ═УНРХРЕ ЯЛЕЬХБЮРЭ ДХПЕЙРХБШ ПЮГМШУ ЛНДСКЕИ ЯНДЕПФЮЫХУ РПЮМЯКЪРНПШ URL-ХЛЪ ТЮИКЮ. рХОХВМШИ ОПХЛЕП ЩРН ХЯОНКЭГНБЮМХЕ ЛНДСКЕИ
mod_alias
Х═mod_rewrite
..дКЪ КЧАХРЕКЕИ ОНЙНБШПЪРЭЯЪ Б═Apache
еЯКХ АШ═РЕЙСЫХИ Apache API ХЛЕК ЙЮЙНИ-МХАСДЭ ОЕПЕУБЮРВХЙ ХЛЪ ТЮИКЮ-ХЛЪ ТЮИКЮ Б═ДНОНКМЕМХЕ Й═ОЕПЕУБЮРВХЙС URI-ХЛЪ ТЮИКЮ МЮЛ АШ═МЕ═ОНМЮДНАХКЯЪ ДЮММШИ ТКЮЦ! нДМЮЙН АЕГ РЮЙНЦН ОЕПЕУБЮРВХЙЮ ЩРНР ТКЮЦ ЩРН ЕДХМЯРБЕММНЕ ПЕЬЕМХЕ. The Apache Group НАЯСДХКЮ ЩРС ОПНАКЕЛС Х═ДНАЮБХР РЮЙНИ ОЕПЕУБЮРВХЙ БН═2-И БЕПЯХХ Apache. - '
skip|S
=ЙНКХВЕЯРБН' (ОПНОСЯРХРЭ ЯКЕДСЧЫЕЕ ОПЮБХКН(Ю))
щРНР ТКЮЦ СЙЮГШБЮЕР ЛЕУЮМХГЛС ОПЕНАПЮГНБЮМХИ ОПНОСЯЙЮРЭ ЯКЕДСЧЫЕЕ ЙНКХВЕЯРБН ОПЮБХК Б═ОНЯКЕДНБЮРЕКЭМНЯРХ МЮВХМЮЧЫЕИЯЪ Я═ РЕЙСЫЕЦН ОПЮБХКЮ. хЯОНКЭГСИРЕ ЩРН ДКЪ ЯНГДЮМХЪ ОЯЕБДН if-then-else ЙНМЯРПСЙЖХИ: оНЯКЕДМЕЕ ОПЮБХКН АКНЙЮ then АСДЕРskip=N
ЦДЕ N═ЙНКХВЕЯРБН ОПЮБХК АКНЙЮ else. (щРН МЕ РН═ФЕ═ЯЮЛНЕ ВРН Х═ТКЮЦ 'chain|C'!) -
'
env|E=
VAR:VAL' (СЯРЮМНБХРЭ ОЕПЕЛЕММСЧ НЙСПФЕМХЪ)
оПХЯБЮХБЮЕР ОЕПЕЛЕММНИ НЙПСФЕМХЪ VAR ГМЮВЕМХЕ VAL, ЦДЕ VAL ЛНФЕР ЯНДЕПФЮРЭ НАПЮРМШЕ ЯБЪГХ$N
Х═%N
ЯЯШКЮЧЫХЕЯЪ МЮ═ВЮЯРХ ПЕЦСКЪПМШУ БШПЮФЕМХИ, ЙНРНПШЕ АСДСР ПЮЯЙПШРШ ЯННРБЕРЯРБСЧЫХЛ НАПЮГНЛ. бШ═ЛНФЕРЕ ХЯОНКЭГНБЮРЭ ЩРНР ТКЮЦ АНКЕЕ НДМНЦН ПЮГЮ ВРНАШ ОПХЯБНХРЭ ГМЮВЕМХЕ АНКЕЕ ВЕЛ НДМНИ ОЕПЕЛЕММНИ. оНГФЕ, ЩРХ ОЕПЕЛЕММШЕ ЛНЦСР АШРЭ ХЯОНКЭГНБЮМШ БН═ЛМНЦХУ ЯХРСЮЖХЪУ, НАШВМН Б═XSSI (ВЕПЕГ<!--#echo var="VAR"-->
) ХКХ Б═CGI ЯЙПХОРЮУ (МЮОПХЛЕП$ENV{'VAR'}
). йПНЛЕ РНЦН, БШ═ЛНФЕРЕ ЩРН ХЯОНКЭГНБЮРЭ Б═ЯКЕДСЧЫЕЛ ЬЮАКНМЕ RewriteCond ВЕПЕГ%{ENV:VAR}
. хЯОНКЭГСИРЕ ЩРН ДКЪ СДЮКЕМХЪ, МН═ГЮОНЛХМЮМХЪ МЕЙНРНПНИ ХМТНПЛЮЖХХ ХГ═URL. -
'
cookie|CO=
NAME:VAL:domain[:lifetime[:path]]' (ГЮОХЯЮРЭ cocookie)
гЮОХЯШБЮЕР cookie ЙКХЕМРС. хЛЪ cookie СЙЮГШБЮЕРЯЪ Б═NAME Ю═ЕЦН ГМЮВЕМХЕ Б═ VAL. оНКЕ domain ЩРН ДНЛЕМ cookie, РЮЙНИ ЙЮЙ МЮОПХЛЕП '.apache.org', НОЖХНМЮКЭМНЕ lifetime ЩРН БПЕЛЪ ФХГМХ cookie Б═ЛХМСРЮУ, Х═НОЖХНМЮКЭМШИ path ЩРН ОСРЭ cookie
оПХЛЕВЮМХЕ
мХЙНЦДЮ МЕ═ГЮАШБЮ╦РЕ ВРН ьЮАКНМ ОПХЛЕМЪЕРЯЪ ЙН═БЯЕЛС URL Б═ЙНМТХЦСПЮЖХНММШУ ТЮИКЮ ЯЕПБЕПЮ. нДМЮЙН Б═ЙНМТХЦСПЮЖХНММШУ ТЮИКЮУ ЙЮРЮКНЦНБ, ОПЕТХЙЯ ЙЮРЮКНЦЮ (ЙНРНПШИ БЯЕЦДЮ НДХМЮЙНБ ДКЪ ЙНМЙПЕРМНЦН ЙЮРЮКНЦЮ !), ЮБРНЛЮРХВЕЯЙХ СДЮКЪЕРЯЪ ОПХ ЯННРБЕРЯРБХХ ЬЮАКНМС Х═ЮБРНЛЮРХВЕЯЙХ ДНАЮБКЪЕРЯЪ ОНЯКЕ ГЮБЕПЬЕМХЪ ОНДЯРЮМНБЙХ. щРЮ НЯНАЕММНЯРЭ, НЯМНБЮ ДКЪ ЛМНЦХУ БХДНБ ОПЕНАПЮГНБЮМХИ, ОНРНЛС ВРН АЕГ СДЮКЕМХЪ ОПЕТХЙЯЮ ДКЪ ПНДХРЕКЭЯЙНЦН ЙЮРЮКНЦЮ РНФЕ ДНКФМН АШРЭ ЯННРБЕРЯРБХЕ, ВРН МЕ═БЯЕЦДЮ БНГЛНФМН.еЯРЭ НДМН ХЯЙКЧВЕМХЕ: еЯКХ ЯРПНЙЮ ОНДЯРЮМНБЙХ
МЮВХМЮЕРЯЪ Я═╚http://
╩ Б═ЩРНЛ ЯКСВЮЕ ОПЕТХЙЯ ЙЮРЮКНЦЮ
МЕ ДНАЮБКЪЕРЯЪ Х═ОПНХЯУНДХР КХАН
БМЕЬМХИ ПЕДХПЕЙР КХАН ОПНОСЯЙЮМХЕ ВЕПЕГ ОПНЙЯХ (ЕЯКХ ХЯОНКЭГСЕРЯЪ ТКЮЦ
P!)!
оПХЛЕВЮМХЕ
дКЪ РНЦН ВРНАШ БЙКЧВХРЭ ЛЕУЮМХГЛ ОПЕНАПЮГНБЮМХИ Б═ ЙНМТХЦСПЮЖХНММШУ ТЮИКЮУ ЙЮРЮКНЦНБ БЮЛ МСФМН МЮОХЯЮРЭ ╚RewriteEngine On
╩ Б═ЩРХУ ЯЮЛШУ ТЮИКЮУ
Х, ЙПНЛЕ РНЦН,
ДНКФМЮ АШРЭ ПЮГПЕЬЕМЮ ЙНМТХЦСПЮЖХНММЮЪ ДХПЕЙРХБЮ ╚Options
FollowSymLinks
╩. еЯКХ БЮЬ ЮДЛХМХЯРПЮРНП
ГЮОПЕРХК ОЕПЕЦПСГЙС ЙНМТХЦСПЮЖХНММНИ ДХПЕЙРХБШ
FollowSymLinks
Б═ОНКЭГНБЮРЕКЭЯЙХУ ЙЮРЮКНЦЮУ, Б═ЩРНЛ ЯКСВЮЕ
БШ═МЕ═ЯЛНФЕРЕ ХЯОНКЭГНБЮРЭ ЛЕУЮМХГЛ ОПЕНАПЮГНБЮМХИ. щРН НЦПЮМХВЕМХЕ МСФМН
ОН═ЯННАПЮФЕМХЪЛ АЕГНОЮЯМНЯРХ.
бНР БЯЕ БНГЛНФМШЕ ЙНЛАХМЮЖХХ ОНДЯРЮМНБНЙ Я═ПЮЯЬХТПНБЙНИ ХУ═ГМЮВЕМХИ:
б═ЙНМТХЦСПЮЖХНММШУ ТЮИКЮУ ЙНМРЕЙЯРЮ ЯЕПБЕПЮ
(httpd.conf
)
ДКЪ ГЮОПНЯЮ БХДЮ ╚GET
/somepath/pathinfo
╩:
оПЮБХКН оНДЯРЮМНБЙЮ ---------------------------------------------- ---------------------------------- ^/somepath(.*) otherpath$1 МЕ ОНДДЕПФХБЮЕРЯЪ, Р.Й. МЕБЕПМН! ^/somepath(.*) otherpath$1 [R] МЕ ОНДДЕПФХБЮЕРЯЪ, Р.Й. МЕБЕПМН! ^/somepath(.*) otherpath$1 [P] МЕ ОНДДЕПФХБЮЕРЯЪ, Р.Й. МЕБЕПМН! ---------------------------------------------- ---------------------------------- ^/somepath(.*) /otherpath$1 /otherpath/pathinfo ^/somepath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^/somepath(.*) /otherpath$1 [P] МЕ ОНДДЕПФХБЮЕРЯЪ, - ЦКСОН! ---------------------------------------------- ---------------------------------- ^/somepath(.*) http://thishost/otherpath$1 /otherpath/pathinfo ^/somepath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^/somepath(.*) http://thishost/otherpath$1 [P] МЕ ОНДДЕПФХБЮЕРЯЪ, - ЦКСОН! ---------------------------------------------- ---------------------------------- ^/somepath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^/somepath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР (ТКЮЦ [R] ХГАШРНВЕМ) ^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo ВЕПЕГ БМСРПЕММХИ ОПНЙЯХ
бМСРПХ ЙНМТХЦСПЮЖХНММНЦН ТЮИКЮ ЙЮРЮКНЦЮ, ДКЪ
/somepath
(Р.Е., ТЮИК .htaccess
Б═ЙЮРЮКНЦЕ
/physical/path/to/somepath
ЯНДЕПФХР
RewriteBase /somepath
)
ДКЪ ГЮОПНЯЮ ╚GET
/somepath/localpath/pathinfo
╩:
оПЮБХКН оНДЯРЮМНБЙЮ ---------------------------------------------- ---------------------------------- ^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo ^localpath(.*) otherpath$1 [R] http://thishost/somepath/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^localpath(.*) otherpath$1 [P] МЕ ОНДДЕПФХБЮЕРЯЪ, - ЦКСОН! ---------------------------------------------- ---------------------------------- ^localpath(.*) /otherpath$1 /otherpath/pathinfo ^localpath(.*) /otherpath$1 [R] http://thishost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^localpath(.*) /otherpath$1 [P] МЕ ОНДДЕПФХБЮЕРЯЪ, - ЦКСОН! ---------------------------------------------- ---------------------------------- ^localpath(.*) http://thishost/otherpath$1 /otherpath/pathinfo ^localpath(.*) http://thishost/otherpath$1 [R] http://thishost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^localpath(.*) http://thishost/otherpath$1 [P] МЕ ОНДДЕПФХБЮЕРЯЪ, - ЦКСОН! ---------------------------------------------- ---------------------------------- ^localpath(.*) http://otherhost/otherpath$1 http://otherhost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР ^localpath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo ВЕПЕГ БМЕЬМХИ ПЕДХПЕЙР (ТКЮЦ [R] ХГАШРНВЕМ) ^localpath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo ВЕПЕГ БМСРПЕММХИ ОПНЙЯХ
оПХЛЕП:
лШ═УНРХЛ ОПЕНАПЮГНБЮРЭ URL БХДЮ
/
Language /~
Realname /.../
File
Б═
/u/
Username /.../
File .
Language
лШ═АЕПЕЛ ТЮИК, ЯНДЕПФЮЫХИ ЮЯЯНЖХЮРХБМШИ ЛЮЯЯХБ ДКЪ ОПЕНАПЮГНБЮМХИ, ОПХБЕД╦ММШИ БШЬЕ Х═ЯНУПЮМЪЕЛ ЕЦН ОНД ХЛЕМЕЛ
/path/to/file/map.txt
. гЮРЕЛ, МЮЛ МСФМН РНКЭЙН
ДНАЮБХРЭ ЯКЕДСЧЫХЕ ЯРПНВЙХ Б═ЙНМТХЦСПЮЖХНММШИ ТЮИК ЯЕПБЕПЮ Apache:
RewriteLog /path/to/file/rewrite.log RewriteMap real-to-user txt:/path/to/file/map.txt RewriteRule ^/([^/]+)/~([^/]+)/(.*)$ /u/${real-to-user:$2|nobody}/$3.$1