директива RewriteCond определя условията за правило. Преди директива RewriteRule са разположени една или повече директиви RewriteCond. Следваща ги правило преобразуване се използва само когато URI отговаря на условието на директивите, както и условията на тези addtional директиви.
TestString низ, който може да съдържа и следните допълнителни конструкции vdopolenii в обикновен текст:
- RewriteRule backreferences. Този вид обратна връзка
NAME_OF_VARIABLE, който може да бъде низ взета от следния списък:
съединение поискване:
HTTP _USER_AGENT
HTTP _REFERER
HTTP _COOKIE
HTTP _FORWARDED
HTTP _HOST
HTTP _PROXY_CONNECTION
HTTP _ACCEPT
REMOTE_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_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
ВРЕМЕТО
API _VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
Тези променливи са в пълно съответствие с подобно име MIME-заглавията HTTP. и Apache сървъри променливи или полетата на структурата TM Unix системи. Повечето от тях са в други места за документиране на потребителя или в спецификацията на CGI. Тези, които са специални за mod_rewrite включват:
IS_SUBREQ ще съдържа текст
Условието е условията на модел, т.е. който и да е регулярен израз приложена към текущата инстанция TestString. т.е. TestString виждал търси подходящи условия.
Запомнете: Това състояние Perl съвместими регулярни изрази с някои допълнения:
- Можете да предхожда шаблон низ префикс! (Удивителен знак), за да посочите, че няма модел за съвпадение.
- Има някои специални варианти на условията. Вместо обичайните редовете с регулярни изрази можете да използвате едно от следните неща:
- <Условие (лексически меньше)
Състояние като обикновен низ и го сравнява лексикографски да TestString. Вярно е, ако TestString лексикално по-малко от това състояние. - > Състояние (лексикално повече)
Състояние като обикновен низ и го сравнява лексикографски да TestString. Вярно е, ако TestString лексикално по-голямо от това състояние. - = Условия (лексикално равен)
Състояние като обикновен низ и го сравнява лексикографски да TestString. Вярно е, ако TestString лексикално равни. т.е. Тези две линии са напълно идентични (vsimvol символ). Ако състоянието е под формата "" (два последователни знак инча) TestString го сравнява с празен низ. - -г (независимо дали директорията)
TestString счита от, проверява наличието на пътя и на факта, че този път е директория. - -е (независимо дали е обикновен файл)
TestString счита начин да удостовери наличието на този път itochto този начин е обикновен файл. - -S (liobychnym файл е различен от нула размер)
TestString счита от, проверява наличието на пътя и на факта, че този път е обикновен файл, чийто размер е по-голям от нула. - -L (референтна lisimvolicheskoy)
TestString счита от, проверява наличието на пътя и на факта, че този път е символична връзка. - -F (проверка за наличието на даден файл, като под-заявка)
Проверки чрез списъци за достъп на сървъра за контрол, които съществуват в момента, независимо дали TestString съществуващ файл на разположение по този път. За този тест се използват вътрешни под-заявка, така че използвайте тази опция, с повишено внимание - това се отразява отрицателно на naproizvoditelnosti сървър! - -U (проверка за съществуването на URL от подзаявка)
Проверки чрез списъци за достъп на сървъра за контрол, които съществуват в момента, независимо дали TestString съществуващ URL. достъпни по този начин. За този тест се използват вътрешни под-заявка, така че използвайте тази опция, с повишено внимание - това се отразява отрицателно на naproizvoditelnosti сървър!
- <Условие (лексически меньше)
Всички тези тестове могат също така да бъде предшествано от представката удивителен знак ( "!") За да намали тяхното значение.
Освен това можете да зададете специални знамена за добавяне Състояние
третият аргумент директива RewriteCond. списък Знамена на следните флагове, разделени със запетаи:
- nocase | NC (нечувствителен)
Регистърът няма стойност, т.е. Не са разликите между "А-Z" ГА-Z "в приложение TestString и условия. Този флаг е ефективен само за сравнения между TestString и условия. Тя не работи по време на инспекции на файловата система и под-заявки. - ornext | OR (или следващата състояние)
Използвайте комбинация от условията в правилата или вместо И. Типичен пример: Без този флаг ще трябва да напише състояние / правило три пъти.
За издаване на началната страница в зависимост от настройката на User-Agent: искане с глава, можете да използвате следните директиви:
Тълкуване: Ако имате Netscape Navigator (което се определя като "Mozilla"), можете да издаде максимум препълнена страница с рамки и т.н. Ако Lynx (текст, базиран браузър), да ви даде най-малко препълнена страницата, без графики, таблици и т.н. Ако някой друг браузър, осигурява стандартна страница.
Свързани статии