- • Указание явной кодировки
- • Модуль mod_rewrite - URL преобр.
- • Директива модуля - RewriteRule flags
- • Директива модуля - RewriteBase
- • Директива модуля - RewriteCond
- • Директива модуля - RewriteEngine
- • Директива модуля - RewriteOptions
- • Примеры URL преобразований
- • Боты - роботы через Mod rewrite
- • Защита от прямого скачивания
Указание явной кодировки
Еще одна очень важная и востребованная возможность реализуема с использованием AddType. Речь идет о явном указании кодировки (.htaccess кодировка) для документов.
AddDefaultCharset задает дефолтную таблицу символов (кодировку) для всех выдаваемых страниц на веб сервере Apache.
Указываем кодировку на все файлы, в которой по умолчанию получает документы браузер:
AddDefaultCharset WINDOWS-1251
Это наиболее важная директива из представленных на данной странице, так как часто можно увидеть такую картину, что скрипты выдают или включают в страницу элементы в кодировке в отличной от кодировки основного документа, т.е. содержимое основного блока страницы читается, а различные блоки с например опросами сервер выдает в другой - в итоге мы видим просто непонятные закорючки. Данная директива избавляет вас от таких проблем, при чем данный неприятный эффект наблюдаеться в различных браузероах по разному, особенно часто этим грешила Опера.
При загрузке файла на сервер (не важно кем - админом или посетителем), возможна перекодировка, его - указываем, что все получаемые файлы будут иметь кодировку windows-1251,для того что бы указать кодировку на загружаемые файлы напишем:
CharsetSourceEnc windows-1251
Если необходимо отменить перекодировку сервером файлов:
CharsetDisable On
- http://htaccess.net.ru/koi/index.php
http://htaccess.net.ru/win/index.php - выбор кодировки по префиксу каталога - http://koi.htaccess.net.ru/index.php
http://win.htaccess.net.ru/index.php - выбор кодировки по имени сервера - http://htaccess.net.ru:8001/index.php
http://htaccess.net.ru:8001/index.php - выбор кодировки по порту
В таких случаях нужно явно указывать кодировку, в которой выполнены соответствующие страницы. Без этого браузер не поймет как нужно отображать национальные символы, которые находятся в документе. Более того, если для всего сервера выдается кодировка windows-1251, естественно, финские страницы будут выданы браузеру тоже с кодировкой windows-1251 в заголовке, что приведет к стопроцентно неправильному отображению.
Итак, учимся выдавать нужную кодировку с помощью настройки .htaccess. Как уже говорилось, документы на другом языке лежат у нас в подкаталоге /fin. Заходим в него, создаем там файл .htaccess и добавляем туда строчку:
# содержание файла .htaccess:
AddType "text/html; charset=iso-8859-1" .html
В результате для всех файлов с расширением .html в каталоге /fin будет выдаваться такой http-заголовок:
telnet net.ru 80
Connected to net.ru.
HEAD /fin/index.html HTTP/1.1
Host: net.ru
HTTP/1.1 200 OK
Last-Modified: Wed, 22 Jul 2005 16:29:30 GMT
Connection: close
Content-Type: text/html; charset=iso-8859-1
Кодировку iso-8859-1 в данном случае мы использовали потому что финский язык это именно iso-8859-1. Это общий набор символов для большинства западноевропейских языков. Узнайте какой charset должен выдаваться для нужного Вам языка и воспользуйтесь AddType.
Предположим, что вам необходимо установить кодировку windows-1251 на все файлы с расширением .htm и кодировку koi-8r на все файлы с расширением .htm, различные кодировки для различных типов файлов:
AddType "application/x-httpd-php3; charset=windows-1251" .html
AddType "application/x-httpd-php3; charset=koi-8r" .htm
С программной точки зрения - удобней всего использовать деление - определение языка сайта по каталогу или поддомену. Что мы можем видеть по модулям популярных движков. Ниже приведен стандарт кодов - доменов для всех стран (языков конечно же значительно меньше):
| Название страны: | Список кодов стран по ISO 3166: | ||
| A | A | ||
| Афганистан | AFGHANISTAN | AF | |
| Аландских островов | ÅLAND ISLANDS | AX | |
| Албания | ALBANIA | AL | |
| АЛЖИР | ALGERIA | DZ | |
| Американского Самоа, | AMERICAN SAMOA | AS | |
| АНДОРРА | ANDORRA | AD | |
| АНГОЛА | ANGOLA | AO | |
| АНГИЛЬЯ | ANGUILLA | AI | |
| АНТАРКТИДА | ANTARCTICA | AQ | |
| АНТИГУА И БАРБУДА | ANTIGUA AND BARBUDA | AG | |
| Аргентина | ARGENTINA | AR | |
| АРМЕНИЯ | ARMENIA | AM | |
| Аруба | ARUBA | AW | |
| Австралия | AUSTRALIA | AU | |
| Австрия | AUSTRIA | AT | |
| Азербайджан | AZERBAIJAN | AZ | |
| B | B | ||
| Бананас | BAHAMAS | BS | |
| Бахрейн | BAHRAIN | BH | |
| Бангладеш | BANGLADESH | BD | |
| БАРБАДОС | BARBADOS | BB | |
| Беларусь | BELARUS | BY | |
| Бельгия BE | BELGIUM | BE | |
| Белиз | BELIZE | BZ | |
| Бенин | BENIN | BJ | |
| БЕРМУДСКИЕ | BERMUDA | BM | |
| Бутан | BHUTAN | BT | |
| БОЛИВИЯ BO | BOLIVIA | BO | |
| БОСНИЯ И ГЕРЦЕГОВИНА | BOSNIA AND HERZEGOVINA | BA | |
| BW Ботсвана | BOTSWANA | BW | |
| ОСТРОВ БУВЕ | BOUVET ISLAND | BV | |
| БРАЗИЛИЯ | BRAZIL | BR | |
| Британские индийские территории | BRITISH INDIAN OCEAN TERRITORY | IO | |
| БРУНЕЙ-ДАРУССАЛАМ | BRUNEI DARUSSALAM | BN | |
| Болгария | BULGARIA | BG | |
| БУРКИНА-ФАСО | BURKINA FASO | BF | |
| БУРУНДИ | BURUNDI | BI | |
| C | C | ||
| КАМБОДЖА | CAMBODIA | KH | |
| Камерун | CAMEROON | CM | |
| Канада | CANADA | CA | |
| CAPE VERDE | CAPE VERDE | CV | |
| ВИРГИНСКИЕ ОСТРОВА | CAYMAN ISLANDS | KY | |
| Центральноафриканская Республика | CENTRAL AFRICAN REPUBLIC | CF | |
| ЧАД | CHAD | TD | |
| ЧИЛИ | CHILE | CL | |
| Китай | CHINA | CN | |
| ОСТРОВ РОЖДЕСТВА | CHRISTMAS ISLAND | CX | |
| Кокосовые (Килинг) острова | COCOS (KEELING) ISLANDS | CC | |
| КОЛУМБИЯ | COLOMBIA | CO | |
| Коморские Острова | COMOROS | KM | |
| КОНГО | CONGO | CG | |
| Конго, Демократическая Республика | CONGO, THE DEMOCRATIC REPUBLI | CD | |
| ОСТРОВА КУКА | COOK ISLANDS | CK | |
| КОСТА-РИКА | COSTA RICA | CR | |
| Кот-д Ивуар | CÔTE D'IVOIRE | CI | |
| Хорватия | CROATIA | HR | |
| КУБА | CUBA | CU | |
| Кипр | CYPRUS | CY | |
| ЧЕХИЯ | CZECH REPUBLIC | CZ | |
| D | D | ||
| Дания | DENMARK | DK | |
| Джибути | DJIBOUTI | DJ | |
| ДОМИНИКА | DOMINICA | DM | |
| Доминиканская Республика | DOMINICAN REPUBLIC | DO | |
| E | E | ||
| ЭКВАДОР | ECUADOR | EC | |
| ЕГИПЕТ | EGYPT | EG | |
| САЛЬВАДОР | EL SALVADOR | SV | |
| Экваториальная Гвинея | EQUATORIAL GUINEA | GQ | |
| ЭРИТРЕЯ | ERITREA | ER | |
| Эстония | ESTONIA | EE | |
| ЭФИОПИЯ | ETHIOPIA | ET | |
| F | F | ||
| ФОЛКЛЕНДСКИЕ (МАЛЬВИНСКИЕ) | FALKLAND ISLANDS (MALVINAS) | FK | |
| Фарерские Острова | FAROE ISLANDS | FO | |
| Фиджи | FIJI | FJ | |
| Финляндия | FINLAND | FI | |
| Франция | FRANCE | FR | |
| ФРАНЦУЗСКИЙ Гвиана | FRENCH GUIANA | GF | |
| Французская Полинезия | FRENCH POLYNESIA | PF | |
| ФРАНЦУЗСКИЙ Южные Территории | FRENCH SOUTHERN TERRITORIES | TF | |
| G | G | ||
| ГАБОН | GABON | GA | |
| ГАМБИЯ | GAMBIA | GM | |
| ГРУЗИЯ | GEORGIA | GE | |
| Германия | GERMANY | DE | |
| Гана | GHANA | GH | |
| ГИБРАЛТАР | GIBRALTAR | GI | |
| Греция | GREECE | GR | |
| ГРЕНЛАНДИЯ | GREENLAND | GL | |
| ГРЕНАДА | GRENADA | GD | |
| ГВАДЕЛУПА | GUADELOUPE | GP | |
| ГУАМ | GUAM | GU | |
| ГВАТЕМАЛА | GUATEMALA | GT | |
| ГЕРНСИ | GUERNSEY | GG | |
| ГВИНЕЯ | GUINEA | GN | |
| ГВИНЕЯ-БИСАУ | GUINEA-BISSAU | GW | |
| Гайана | GUYANA | GY | |
| H | H | ||
| ГАИТИ | HAITI | HT | |
| Остров Херд и Макдональд | HEARD ISLAND AND MCDONALD ISL | HM | |
| Святой Престол (Ватикан) | HOLY SEE (VATICAN CITY STATE) | VA | |
| Гондурас | HONDURAS | HN | |
| Гонконг | HONG KONG | HK | |
| ВЕНГРИЯ | HUNGARY | HU | |
| I | I | ||
| Исландия | ICELAND | IS | |
| ИНДИИ | INDIA | IN | |
| INDONESIA | INDONESIA | ID | |
| ИРАН | IRAN, ISLAMIC REPUBLIC OF | IR | |
| ИРАК | IRAQ | IQ | |
| Ирландия | IRELAND | IE | |
| ОСТРОВ МЭН | ISLE OF MAN | IM | |
| Израиль | ISRAEL | IL | |
| Италия | ITALY | IT | |
| J | J | ||
| Ямайка | JAMAICA | JM | |
| Япония | JAPAN | JP | |
| ДЖЕРСИ | JERSEY | JE | |
| ИОРДАНИЯ | JORDAN | JO | |
| К | K | ||
| КАЗАХСТАН | KAZAKHSTAN | KZ | |
| КЕНИЯ | KENYA | KE | |
| КИРИБАТИ | KIRIBATI | KI | |
| КОРЕЯ, НАРОДНО-ДЕМОКРАТИЧЕС | KOREA, DEMOCRATIC PEOPLE'S RE | KP | |
| Республика Корея | KOREA, REPUBLIC OF | KR | |
| КУВЕЙТ | KUWAIT | KW | |
| КЫРГЫЗСТАН | KYRGYZSTAN | KG | |
| L | L | ||
| ЛАОССКАЯ НАРОДНО-ДЕМОКРАТИЧ | LAO PEOPLE'S DEMOCRATIC REPU | LA | |
| Латвия | LATVIA | LV | |
| Ливан | LEBANON | LB | |
| ЛЕСОТО | LESOTHO | LS | |
| ЛИБЕРИЯ | LIBERIA | LR | |
| Ливийская Арабская Джамахирия | LIBYAN ARAB JAMAHIRIYA | LY | |
| ЛИХТЕНШТЕЙН | LIECHTENSTEIN | LI | |
| Литва | LITHUANIA | LT | |
| ЛЮКСЕМБУРГ | LUXEMBOURG | LU | |
| М | M | ||
| МАКАО МО | MACAO | MO | |
| Македония, Бывшая югославская Рес | MACEDONIA, THE FORMER YUGOSL | MK | |
| МАДАГАСКАР | MADAGASCAR | MG | |
| МАЛАВИ | MALAWI | MW | |
| Малайзия | MALAYSIA | MY | |
| Мальдивы | MALDIVES | MV | |
| Мали | MALI | ML | |
| Мальта | MALTA | MT | |
| МАРШАЛЛОВЫ ОСТРОВА | MARSHALL ISLANDS | MH | |
| МАРТИНИКА | MARTINIQUE | MQ | |
| МАВРИТАНИЯ | MAURITANIA | MR | |
| Маврикий | MAURITIUS | MU | |
| МАЙОТТА | MAYOTTE | YT | |
| МЕКСИКА | MEXICO | MX | |
| Микронезия, Федеративные Штаты | MICRONESIA, FEDERATED STATES | FM | |
| Молдова | MOLDOVA | MD | |
| МОНАКО | MONACO | MC | |
| МОНГОЛИЯ | MONGOLIA | MN | |
| ЧЕРНОГОРИЯ | MONTENEGRO | ME | |
| Монтсеррат | MONTSERRAT | MS | |
| МАРОККО | MOROCCO | MA | |
| МОЗАМБИК | MOZAMBIQUE | MZ | |
| МЬЯНМА | MYANMAR | MM | |
| N | N | ||
| НАМИБИЯ | NAMIBIA | NA | |
| НАУРУ | NAURU | NR | |
| НЕПАЛ | NEPAL | NP | |
| Нидерланды | NETHERLANDS | NL | |
| НИДЕРЛАНДЫ АНТИЛЬСКИЕ | NETHERLANDS ANTILLES | AN | |
| Новая Каледония | NEW CALEDONIA | NC | |
| Новая зеландия | NEW ZEALAND | NZ | |
| НИКАРАГУА | NICARAGUA | NI | |
| Нигер | NIGER | NE | |
| НИГЕРИЯ | NIGERIA | NG | |
| NIUE | NIUE | NU | |
| NORFOLK ISLAND | NORFOLK ISLAND | NF | |
| СЕВЕРНЫЕ МАРИАНСКИЕ ОСТРОВА | NORTHERN MARIANA ISLANDS | MP | |
| НОРВЕГИЯ: | NORWAY | NO | |
| O | O | ||
| ОМАН | OMAN | OM | |
| П | P | ||
| ПАКИСТАН | PAKISTAN | PK | |
| Палау | PALAU | PW | |
| Палестинской территории, оккупирован | PALESTINIAN TERRITORY, OCCUPIE | PS | |
| Панама | PANAMA | PA | |
| ПАПУА-НОВАЯ ГВИНЕЯ | PAPUA NEW GUINEA | PG | |
| Парагвай | PARAGUAY | PY | |
| ПЕРУ | PERU | PE | |
| ФИЛИППИНЫ | PHILIPPINES | PH | |
| ПИТКЭРН | PITCAIRN | PN | |
| Польша | POLAND | PL | |
| Португалия | PORTUGAL | PT | |
| ПУЭРТО-РИКО | PUERTO RICO | PR | |
| Q | Q | ||
| КАТАР | QATAR | QA | |
| R | R | ||
| Реюньон | RÉUNION | RE | |
| Румыния | ROMANIA | RO | |
| РУССКИЙ Федерации | RUSSIAN FEDERATION | RU | |
| РУАНДА | RWANDA | RW | |
| S | S | ||
| Санкт BARTHELEMY | SAINT BARTHÉLEMY | BL | |
| ОСТРОВ СВЯТОЙ ЕЛЕНЫ | SAINT HELENA | SH | |
| СЕНТ-КИТС И НЕВИС | SAINT KITTS AND NEVIS | KN | |
| Сент-Люсия | SAINT LUCIA | LC | |
| Сен-Мартен | SAINT MARTIN | MF | |
| Сен-Пьер и МИКЕЛОН PM | SAINT PIERRE AND MIQUELON | PM | |
| СЕНТ-ВИНСЕНТ И ГРЕНАДИНЫ | SAINT VINCENT AND THE GRENADIN | VC | |
| Самоа | SAMOA | WS | |
| САН-МАРИНО | SAN MARINO | SM | |
| САН-ТОМЕ И ПРИНСИПИ | SAO TOME AND PRINCIPE | ST | |
| САУДОВСКАЯ АРАВИЯ | SAUDI ARABIA | SA | |
| СЕНЕГАЛ | SENEGAL | SN | |
| СЕРБИЯ | SERBIA | RS | |
| Сейшельские острова | SEYCHELLES | SC | |
| СЬЕРРА-ЛЕОНЕ | SIERRA LEONE | SL | |
| СИНГАПУР | SINGAPORE | SG | |
| Словакия | SLOVAKIA | SK | |
| Словения | SLOVENIA | SI | |
| Соломоновы Острова | SOLOMON ISLANDS | SB | |
| Сомали | SOMALIA | SO | |
| ЮЖНАЯ АФРИКА Жилина | SOUTH AFRICA | ZA | |
| Южная Георгия и Южные Сандвичевы | SOUTH GEORGIA AND THE SOUTH S | GS | |
| Испания | SPAIN | ES | |
| Шри-Ланка | SRI LANKA | LK | |
| СУДАН | SUDAN | SD | |
| Суринам | SURINAME | SR | |
| Шпицберген и Ян-Майен | SVALBARD AND JAN MAYEN | SJ | |
| СВАЗИЛЕНД | SWAZILAND | SZ | |
| Швеция | SWEDEN | SE | |
| Швейцария | SWITZERLAND | CH | |
| СИРИЙСКАЯ АРАБСКАЯ РЕСПУБЛИ | SYRIAN ARAB REPUBLIC | SY | |
| Т | T | ||
| Тайвань | TAIWAN, PROVINCE OF CHINA | TW | |
| Таджикистан | TAJIKISTAN | TJ | |
| Танзания, Объединенная Республика | TANZANIA, UNITED REPUBLIC OF | TZ | |
| ТАИЛАНД | THAILAND | TH | |
| ВОСТОЧНЫЙ ТИМОР | TIMOR-LESTE | TL | |
| Того | TOGO | TG | |
| ТОКЕЛАУ | TOKELAU | TK | |
| Тонга | TONGA | TO | |
| ТРИНИДАД И ТОБАГО | TRINIDAD AND TOBAGO | TT | |
| ТУНИС | TUNISIA | TN | |
| Турция | TURKEY | TR | |
| ТУРКМЕНИСТАН | TURKMENISTAN | TM | |
| ТЕРКС И КАЙКОС | TURKS AND CAICOS ISLANDS | TC | |
| Тувалу | TUVALU | TV | |
| U | U | ||
| Уганда | UGANDA | UG | |
| УКРАИНА | UKRAINE | UA | |
| ОБЪЕДИНЕННЫЕ АРАБСКИЕ ЭМИР | UNITED ARAB EMIRATES | AE | |
| Соединенное Королевство | UNITED KINGDOM | GB | |
| США | UNITED STATES | US | |
| Малые отдаленные острова | UNITED STATES MINOR OUTLYING IS | UM | |
| Уругвай | URUGUAY | UY | |
| Узбекистан | UZBEKISTAN | UZ | |
| V | V | ||
| ВАНУАТУ | VANUATU | VU | |
| ВЕНЕСУЭЛА | VENEZUELA | VE | |
| ВЬЕТНАМ | VIET NAM | VN | |
| Virgin Islands, British | VIRGIN ISLANDS, BRITISH | VG | |
| Виргинские острова | VIRGIN ISLANDS, U.S. | VI | |
| W | W | ||
| Уоллис и Футуна | WALLIS AND FUTUNA | WF | |
| ЗАПАДНАЯ САХАРА | WESTERN SAHARA | EH | |
| Y | Y | ||
| Йемен | YEMEN | YE | |
| Z | Z | ||
| Замбия | ZAMBIA | ZM | |
| ЗИМБАБВЕ | ZIMBABWE | ZW | |
