Htaccess синтаксис. htaccess - Применение и синтаксис
This chapter introduces the concepts, objects and functions used to work with and perform calculations using numbers and dates in JavaScript. This includes using numbers written in various bases including decimal, binary, and hexadecimal, as well as the use of the global Math object to perform a wide variety of mathematical operations on numbers.
Numbers
Unlike many other objects, you never create a Math object of your own. You always use the built-in Math object.
Date object
JavaScript does not have a date data type. However, you can use the Date object and its methods to work with dates and times in your applications. The Date object has a large number of methods for setting, getting, and manipulating dates. It does not have any properties.
JavaScript handles dates similarly to Java. The two languages have many of the same date methods, and both languages store dates as the number of milliseconds since January 1, 1970, 00:00:00, with a Unix Timestamp being the number of seconds since January 1, 1970, 00:00:00.
The Date object range is -100,000,000 days to 100,000,000 days relative to 01 January, 1970 UTC.
To create a Date object:
Var dateObjectName = new Date();
where dateObjectName is the name of the Date object being created; it can be a new object or a property of an existing object.
Calling Date without the new keyword returns a string representing the current date and time.
The parameters in the preceding syntax can be any of the following:
- Nothing: creates today"s date and time. For example, today = new Date(); .
- A string representing a date in the following form: "Month day, year hours:minutes:seconds." For example, var Xmas95 = new Date("December 25, 1995 13:30:00") . If you omit hours, minutes, or seconds, the value will be set to zero.
- A set of integer values for year, month, and day. For example, var Xmas95 = new Date(1995, 11, 25) .
- A set of integer values for year, month, day, hour, minute, and seconds. For example, var Xmas95 = new Date(1995, 11, 25, 9, 30, 0); .
Methods of the Date object
The Date object methods for handling dates and times fall into these broad categories:
- "set" methods, for setting date and time values in Date objects.
- "get" methods, for getting date and time values from Date objects.
- "to" methods, for returning string values from Date objects.
- parse and UTC methods, for parsing Date strings.
With the "get" and "set" methods you can get and set seconds, minutes, hours, day of the month, day of the week, months, and years separately. There is a getDay method that returns the day of the week, but no corresponding setDay method, because the day of the week is set automatically. These methods use integers to represent these values as follows:
- Seconds and minutes: 0 to 59
- Hours: 0 to 23
- Day: 0 (Sunday) to 6 (Saturday)
- Date: 1 to 31 (day of the month)
- Months: 0 (January) to 11 (December)
- Year: years since 1900
For example, suppose you define the following date:
Var Xmas95 = new Date("December 25, 1995");
Then Xmas95.getMonth() returns 11, and Xmas95.getFullYear() returns 1995.
The getTime and setTime methods are useful for comparing dates. The getTime method returns the number of milliseconds since January 1, 1970, 00:00:00 for a Date object.
For example, the following code displays the number of days left in the current year:
Var today = new Date(); var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // Set day and month endYear.setFullYear(today.getFullYear()); // Set year to this year var msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay; var daysLeft = Math.round(daysLeft); //returns days left in the year
This example creates a Date object named today that contains today"s date. It then creates a Date object named endYear and sets the year to the current year. Then, using the number of milliseconds per day, it computes the number of days between today and endYear , using getTime and rounding to a whole number of days.
The parse method is useful for assigning values from date strings to existing Date objects. For example, the following code uses parse and setTime to assign a date value to the IPOdate object:
Var IPOdate = new Date(); IPOdate.setTime(Date.parse("Aug 9, 1995"));
Example
In the following example, the function JSClock() returns the time in the format of a digital clock.
Function JSClock() { var time = new Date(); var hour = time.getHours(); var minute = time.getMinutes(); var second = time.getSeconds(); var temp = "" + ((hour > 12) ? hour - 12: hour); if (hour == 0) temp = "12"; temp += ((minute < 10) ? ":0" : ":") + minute; temp += ((second < 10) ? ":0" : ":") + second; temp += (hour >= 12) ? " P.M." : " A.M."; return temp; }
The JSClock function first creates a new Date object called time ; since no arguments are given, time is created with the current date and time. Then calls to the getHours , getMinutes , and getSeconds methods assign the value of the current hour, minute, and second to hour , minute , and second .
The next four statements build a string value based on the time. The first statement creates a variable temp , assigning it a value using a conditional expression; if hour is greater than 12, (hour - 12), otherwise simply hour, unless hour is 0, in which case it becomes 12.
The next statement appends a minute value to temp . If the value of minute is less than 10, the conditional expression adds a string with a preceding zero; otherwise it adds a string with a demarcating colon. Then a statement appends a seconds value to temp in the same way.
Finally, a conditional expression appends "P.M." to temp if hour is 12 or greater; otherwise, it appends "A.M." to temp .
.htaccess (с точкой в начале имени) - это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Он позволит вам: устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок.
Это достаточно удобно в случае, когда Вам необходимо переопределить управляющие директивы WEB-сервера для конкретного каталога или сайта (если на WEB-сервере несколько сайтов) и не хочется менять установки для всех остальных. А так же в случаях, когда у Вас нет доступа к файлу httpd.conf.
Файл.htaccess может быть размещен в любом каталоге. Директивы этого файла действует на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов.htaccess). Для того, что бы эти файлы.htaccess можно было использовать - необходимы соответствующие настройки главного конфигурационного файла. Большинство хостеров разрешают использовать настройки в файле.htaccess, а если не позволяют, то скорей всего вы взяли очень дешевый пакет с минимумом возможностей, или вы попали к самому плохому хостеру.
Допустимые директивы в.htaccess
Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server/html/
Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо можете посмотреть сами, запустив на сайте функцию PHP - phpinfo(). Вам необходимо найти переменную doc_root и посмотреть ее значение - это будет путь от корня сервера до Вашей основной директории. В именах доменов обязательно должны быть указаны протоколы, например:
Redirect / http://www.test-page.ru
Глобальное перенаправление (редирект ) на другой адрес:
Redirect / http://www.test-page.ru
Перенаправление (редирект) только при запросе определенных страниц:
Redirect /data http://test-page.com/data
redirect /forum http://test-page.com/forum
При запросе страниц из каталогов data и forum будет произведено перенаправление на новые адреса.
Перенаправление всех запросов кроме.gif и.jpg:
RewriteEngine On
RewriteRule !.(gif|jpg)$ index.php
Все запросы кроме запросов к файлам с расширениями.gif и.jpg будут перенаправлены на файл index.php
Перенаправление (редирект) только посетителей с определенным IP-адресом:
SetEnvIf REMOTE_ADDR 192.168.11.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /data.html
Если посетитель имеет IP-адрес 192.168.11.1, то ему будет открыта страница data.html.
Изменение названия индексной страницы:
DirectoryIndex index.html index.php index.shtml
Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html, то будет произведен поиск файла index.php и т.д.
Выполнять код PHP в файлах HTML
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Добавив эти строки в.htaccess вы дадите директиву серверу выполнять инструкции PHP не только в файлах с расширением *.php и *.phtml, но и в файлах с расширением *.htm и *.html. Также можно добавить туда любые другие расширения файлов, к примеру.code или.kot, такие хитрости иногда могут сбить с толку хакера, который пытается взломать ваши скрипты.
Обработка ошибок Apache
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
При возникновении этих ошибок посетитель будет перенаправлен на специально созданные страницы.
403 ошибка - пользователь не прошел аутентификацию, доступ запрещен (Forbided).
404 ошибка - Документ не найден (Not Found).
500 ошибка - Внутренняя ошибка сервера (Internal Server Error).
Запрет на отображение содержимого каталога (если в папке нет index.php или index.html)
Options -Indexes
Определение кодировки , в которой сервер посылает страницы пользователю
AddDefaultCharset utf-8
Определение кодировки на загружаемые файлы
CharsetSourceEnc windows-1251
или
CharsetSourceEnc utf-8
Запрет доступа ко всем файлам
deny from all
Запрещен доступ ко всем файлам и каталогам в текущей директории.
Разрешить доступ только с определенного IP-адреса
order deny,allow
deny from all
allow from 192.168.11.1
Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 192.168.11.1. Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыт, так как директива deny, выполняемая последней перекроет действия директивы allow.
Запретить доступ с определенного IP-адреса
deny from 192.168.11.1
Запретить доступ к определенному файлу
deny from all
Запрещен доступ посетителей к файлам config.php . Этот запрет не действует на скрипты web-сервера. Они по прежнему будут иметь доступ к этому файлу.
Запретить доступ к файлам с определенным расширением
deny from all
Здесь запрещен доступ к файлам с расширением *.ini. Директива, при указании имени файлов, позволяет использовать подстановочные символы.
Любой одиночный символ
* - любая последовательность символов, исключая символ / (слеш)
Запретить доступа к файлам с несколькими типа расширений
deny from all
Запрещен доступ к файлам с расширением *.inc, *.conf, *.cfg, *.pass. Хотя директива, по умолчанию, не работает с регулярными выражениями, но их можно включить, поставив символ тильды (~) в опциях директивы. Синтаксис следующий:
Установка пароля на директорию
AuthName "Admin page"
AuthType Basic
AuthUserFile /pub/home/server/.pass
require valid-user
Использование файла.htaccess
Файл.htaccess предназначен для индивидуальной настройки сайтов и их каталогов. Он может содержать почти все инструкции, допустимые в файле httpd.conf (главный файл конфигурации сервера Апач). В отличие от httpd.conf, который должен лежать в каталоге /usr/local/etc/httpd/conf (а к нему имеет доступ только администратор сервера), файл.htaccess может лежать и, будет обрабатываться в любом каталоге сайта (если его обработка разрешена администратором сервера). В отличие от httpd.conf, настройки которого распространяются на всех пользователей сервера (владельцев сайтов), файл.htaccess вносит локальные изменения в настройки, влияя только на каталог его содержащий, вместе с вложенными в него каталогами. Файл.htaccess более глубокого вложения, переопределяет настройки аналогичного файла верхнего уровня, для своего каталога и тех, что в него вложены. Так, например, для каталога /www/, настройки задаются файлом /www/.htaccess, а для каталога /www/data/ - файлами /www/.htaccess и /www/data/.htaccess. Если в файле.htaccess нижнего уровня обнаружены те же инструкции, что и в.htaccess верхнего уровня (вероятно с иными параметрами), то выполняться будут именно они. Таким образом, образуется иерархическая структура правил, которые на нижнем уровне могут быть совершенно не такими как на верхнем (что-то мне это напоминает).
Поскольку файлы.htaccess нередко содержат информацию об аутентификации, доступ к ним из Интернета, обычно, запрещен из соображений безопасности. Вы можете разрешить или запретить доступ к ним самостоятельно, используя инструкции в самом файле.htaccess .
Синтаксис.htaccess
Вот обязательной синтаксис, несоблюдение которого приводит к ошибкам сервера:
- Пути к файлам (директориям) указываются от корня сервера: /opt/home/www.astanafoto.com/htdocs/config/.htpasswords
- Домены с указанием протокола: http://www.site.ru
Файл имеет название именно «точка»htaccess
Htaccess должен быть записан в UNIX-формате, то есть, перевод строки должен задаваться в нем одним символом (десятичный 10, шестнадцатиричный 0A), а не двумя (десятичный 13, шестнадцатиричный 0D + десятичный 10, шестнадцатиричный 0A), как в DOS или Windows. Для тех, кто работает из под Windows, полученный тексовой файл потребуется открыть в 16-ричном редакторе и запустить замену 0D на 20 (пробел в 16-ричном варианте). Есть и другие способы превращения Windows-файла в UNIX-формат.
Определение области действия директив, задаваемых в файле.htaccess
Кроме ограничения действия директив каталогом, в котором лежит файл.htaccess и вложенными каталогами, предусмотрена возможность ограничить их действие отдельными файлами по шаблону, или файлом. Блоки, определяющие область применимости директив, сделаны по аналогии с тегами: они имеют открывающий и закрывающий тег. Внутри этих тегов указываются сами директивы, действие которых требуется ограничить.
Блок Files
Блок Files ограничивает действие вложенных в него директив одним файлом, название которого указывается в открывающем теге блока:
ДИРЕКТИВЫ Блок FilesMatch
Блок FilesMatch ограничивает действие вложенных в него директив файлами, соответствующими шаблону, указываемому в открывающем теге блока:
ДИРЕКТИВЫ Блок IfModule
Блок IfModule ограничивает действие вложенных в него директив условием, что требуемые для их выполнения, модули загружены:
Этот блок позволяет избежать ошибочных ситуаций
ДИРЕКТИВЫ
Если перед названием модуля стоит слеш, директива выполняется только если модуль не загружен
ДИРЕКТИВЫ Блок IfDefine
Блок IfDefine выполняется только при условии, что требуемые для их выполнения, значения установлены:
Так же, как IfModule, этот блок позволяет избежать ошибочных ситуаций
ДИРЕКТИВЫ Директивы файла.htaccess
В файле.htaccess предусмотрено ни много директив, но и это «ни много», оказывается мощьнейшим инструментом настройки сервера в умелых рука.
Парольная защита с помощью файла.htaccess Пароль на директорию:
AuthName "Private zone"
require valid-user
Значение AuthName будет выводиться для посетителя и может использоваться для пояснения запроса авторизации. Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.
Например в директории, которую защищаем паролем создаем такой.htaccess:
AuthName "For Registered Users Only"
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
В этом примере, посетитель при запросе директории, будет читать фразу "For Registered Users Only", файл с паролями для доступа должен лежать в директории /pub/site.ru/ и называться.htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл.htpasswd и никто не получит доступа к данной директории.
Пароль только на 1 файл:
Аналогично паролированию директории полностью, можно ставить пароль только на 1 файл.
Пример установки пароля на файл private.zip:
AuthName "Users zone"
AuthUserFile /pub/home/твой_логин/.htpasswd
Пароль на группу файлов:
Аналогично, используя, можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением "sql":
AuthName "Users zone"
AuthUserFile /pub/home/твой_логин/.htpasswd
Проверка прав доступа с помощью файла.htaccess
Задача: есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ только к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз - при доступе к a1, но при этом соблюдать права на доступ к а2 и а3.
Ник и пароль запрашиваются только при входе на а1 - если у юзвера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка "введите пароль".
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 - общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей.
файл.htaccess для каталога а1:
AuthName "Input password"
require valid-user
файл.htaccess для каталога а2:
AuthName "Input password"
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер2 юзвер3
файл.htaccess для каталога а3:
AuthName "Input password"
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
require user юзвер1 юзвер4 юзвер5
Перенаправление (редирект) посетителя с помощью файла.htaccess
Редирект на другой url:
Что бы сделать перенаправления посетителя на сайт http://site.ru в.htaccess
Redirect / http://www.site.ru
Показ разных страниц, в зависимости от IP адреса посетителя:
SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html
Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /about_my_sity.html
Перенаправление посетителя при запросе определенных страниц:
Это уже для всех сетевых вирусов и сканеров. Теперь любой запрос с адресом /_vti_bin будет автоматически перенаправляться на Microsoft:
redirect /_vti_bin http://www.microsoft.com
redirect /scripts http://www.microsoft.com
redirect /MSADC http://www.microsoft.com
redirect /c http://www.microsoft.com
redirect /d http://www.microsoft.com
redirect /_mem_bin http://www.microsoft.com
redirect /msadc http://www.microsoft.com
RedirectMatch (.*)cmd.exe$http://www.microsoft.com$1
Указание стартовой страницы с помощью файла.htaccess
Что бы поменять страницу, которая будет показываться при обращении к директории, пишем:
DirectoryIndex <нужная страница>
Можно указывать несколько страниц.
DirectoryIndex index.shtml index.html index.html3 index.html index.htm
Определение обработки SSI директив с помощью файла.htaccess
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes.
После, в файле.htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm
Обработка в html-документах php-кода
Иногда бывает полезно "обмануть" посетителя, выдавая ему свои php-скрипты или иные файлы, как html файлы. Реально используется для индексации поисковой системой Rambler php-скриптов. Некоторые делаю мелкие фишки, вроде того, что дают файлам расширения совпадающие с какими-либо "знаковыми" именами. Например, на сайте http://www.wmaster.ru/WIND98/TEMP/Rar$EX00.001/www.osg.ru используются файлы с расширением osg: index.osg, script.osg и т.п.
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
При большой посещаемости сервера может вызвать тормоза. Спрашивайте у админа.
Замена стандартных сообщений об ошибках сервера с помощью файла.htaccess
Наиболее интересные и полезные ошибки Апача это: 403-404, 500.
403 - пользователь не прошел аутентификацию, запрет на доступ (Forbided).
500 - внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла.htaccess).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в.htaccess пишем:
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html
При этом при возникновении 404 ошибки пользователю загрузится файл errors/403.html.
Удобно делать собственный обработчик на некоторые ошибки. В.htaccess пишем:
ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404
ErrorDocument 500 /errors/error.php?500
В error.php через $HTTP_SERVER_VARS[´REQUEST_URI´] определяем какой документ вызвал ошибку и дальше обрабатываем. Если в.htaccess на ErrorDocument стоит указание файла с полным путем (http://site.ru/error.php), то $HTTP_SERVER_VARS[´REQUEST_URI´] будет содержать этот файл, а не вызвавший ошибку.
Величина страницы с ошибкой должна быть больше 511 байтов, иначе Internet Explorer может показать собственную страницу с описанием ошибки..
Больше информации о кодах ошибки http сервера можно посмотреть на «Коды ошибки http сервера»
Замена стандартных сообщений об ошибках сервера позволяет нормальным языком обьяснить посетителю что произошло. Примеры страниц для замены ошибок http сервера вы можете посмотреть в каталоге ошибок http сервера
Запрет просмотра каталога с помощью файла.htaccess
Предположим, что у вас вся графика, используемая на сайте находится в директории img. Посетитель может набрать в адресной строке браузера эту директорию и увидеть список всех ваших графических файлов. Конечно, это не нанесет вам урона, но можно и не дать такого просмотра посетителю. В.htaccess пишем:
Options -Indexes
И наоборот, вы можете разрешить просмотр каталога, встроив его в стандартный интерфейс сайта директивой
Options +Indexes
Смотрите пример, как может выглядеть каталог примеров, использующихся основными страинцами сайта (возможно пример с сайта bosportour.com будет более очевидным). Описание директив для подобного отображения каталогов планируется поместить в полную докумнтацию по файлу.htaccess.
Определение кодировки по умолчанию с помощью файла.htaccess
На заре интернета и зарождения браузеров, часто была ситуация, что браузер не мог автоматически определить, в какой из русских кодировок написан документ и в браузер выдавалась какая-то каша. Для избежания этого указываем, что все отдаваемые страницы будут иметь кодировку windows-1251:
AddDefaultCharset windows-1251
Определение кодировки на загружаемые файлы с помощью файла.htaccess
При загрузке посетителем файла на сервер, возможна перекодировка его - указываем, что все получаемые файлы будут иметь кодировку windows-1251:
CharsetSourceEnc windows-1251
Вероятные ошибки в файле.htaccess
Создал файл.htaccess, но сервер выдает 500 ошибку - Internal Erorr Ошибка синтаксиса или файл записан не в том формате.
Смотрите синтаксис.htaccess.
Просмотрите файл error.log в корне своего сайта (если он там есть). Например строка:
W:/home/h15.ru/bospor/.htaccess: CustomLog not allowed here
Указывает на ошибку вфайле w:/home/h15.ru/bospor/.htaccess (http://bospor.h15.ru/.htaccess): Директива CustomLog не допустима здесь.
RewriteRule ^old(.*)$ /new.php
Используются для задания групп символов или «меток» в шаблоне. Например, метки начала или конца строки.
\ | «Экранирующий» слеш. Следующий символ после него считается обычным, а не спецсимволом. Символ \ ставится перед спецсимволами, если они нужны в своем первозданном виде. Например, выражению "jpe\+g" соответствует только одна строка "jpe+g". |
^ | Символ ^ обозначает начало строки. |
$ | Символ $ обозначает конец строки. |
! | Символ отрицания. |
. | Символ. обозначает любой символ (кроме символа конца строки). |
.* | Заменяет абсолютно любой набор символов |
".*" | Найдёт все подстроки между кавычками |
| | Символ | обозначает альтернативу. Например, выражения "A|B" и "(ABC|DEF)" означают "A или B" и "ABC или DEF" соответственно. |
() | Круглые скобки () используются для выделения групп символов. |
[...] | Квадратные скобки используются для перечисления допустимых символов. Например, выражение "" равносильно выражению "a|b|c", но вариант с квадратными скобками обычно является более оптимальным по быстродействию. Внутри скобок можно использовать диапазоны: например, выражение "" равносильно выражению "". |
[^...] | Инвертированный класс символов. Если символы внутри квадратных скобок начинаются с символа ^, это означает любой символ, кроме перечисленных в скобках. Например, выражение "[^0-9]+" означает строку из любых символов, кроме цифр. |
[...]* | Например, * — команда найдёт идущие подряд символы из заданного набора. [^abc]* — с точностью до наоборот. |
\w | Буква, цифра или подчёркивание _. |
\d | Заменяет любую цифру. |
\D | Заменяет любой символ, но не цифру. |
Заменяет любую цифру. | |
Любая буква от a до z (весь латинский набор символов) в нижнем регистре. | |
Любая буква от A до Z в ВЕРХНЕМ регистре. | |
Любая буква от a до Z в любом регистре. — то же самое. | |
Дополнение. Все, что расположено после символа "#", считается комментарием. |