| Файл .htaccess служит для управления некоторыми функциями сервера
Apache. Все изменения в нём производятся с помощью внесения определённых
записей в любом текстовом редакторе (блокнот, Dreamweaver и пр. Не
путать с текстПроцессорами, типа MSWord).
Внимательно! В проводнике Windows будет невозможно создать файл с таким
именем (т.е. без имени, только с расширением). Его необходимо будет
создать в альтернативной программе (например Far Manager) или
скопировать готовым откуда угодно и отредактировать.
Файл помещается непосредственно в корневую директорию сайта на сервере.
Его правила распространяются на данную директорию и все поддиректории,
находящиеся в ней.
1. Правила переадресации страниц. Redirect.
Выполняется для указания клиенту (браузеру, поисковому роботу), что
данная страница навсегда (если redirect 301) или временно (если redirect
302) переехала по другому адресу.
Записывается:
Redirect 301 /filename.html http://domain.tld/newfilename.php
где /filename.html - старое название страницы (записывается без указания протокола и домена, от корня сайта.) http://domain.tld/newfilename.php - новое имя той же страницы. (записывается с указанием протокола и домена. Домен может быть как тот же, так и любой другой).
Запись вида:
Redirect 301 / http://domain.tld/
Будет означать, что все страницы сайта с верхнего уровня перенесены на новый сайт domain.tld (на главную страницу!)
При необходимости выполнить редирект постранично на другой домен (или
поддомен) можно воспользоваться директивой RedirectMatch, которая
позволяет использовать регулярные выражения.
Записывается:
RedirectMatch permanent ^(.*)$ http://domain.tld$1
где ^(.*)$ - страница, которую нужно перенести
с данного домена. (^ - начало "сравниваемой" строки, (.*) - любое
количество любых символов, $ - конец сравниваемой строки), http://domain.tld - домен на который был перемещён сайт, $1 - выражение в скобках.
2. Правила подмены строк. RewriteRule.
Используется для замены для сервера адресной строки на необходимую ему (например, передача GET-параметров в адресе страницы)
Записывается:
RewriteEngine on
RewriteRule ^(.+)/$ index.php?file=$1
RewriteRule ^(.+)/(.+).html$ index.php?file=$1&page=$2
Где RewriteEngine on - включение модуля Rewrite, ^(.+)/$
- исходная строка, адрес в браузере (^ - начало строки, (.+) - два или
более любых символа - можно написать и (.*), / - экранированный символ
"/"), index.php - файл-скрипт, который должен быть запущен, ?file=$1 - параметр, который должен быть передан ($1 - выражение в первых скобках).
Чтобы было понятнее - поясню "на пальцах".
Строка RewriteRule ^(.+)/(.+).html$ index.php?file=$1&page=$2 означает:
Адрес вида
http://domain.tld/filename/pagename.html
сервер воспримет как
http://domain.tld/index.php?file=filename&page=pagename
Внимательно! В данном случае клиент (браузер, поисковый робот) ничего знать не будет. Для него адрес страницы не изменится.
Запись вида:
RewriteEngine on
RewriteRule ^(.+)/$ index.php?file=$1 [R=301, L]
будет совершать подмену не только для сервера, но уже и для клиента. Т.е. - это аналог директивы Redirect 301. "L" - будет означать, что это правило выполняется последним в файле .htaccess
3. Обработка ошибки 404.
Позволяет выдавать одну определённую страницу вместо отсутствующих и вместо ошибки 404.
Записывается:
ErrorDocument 404 /404.php
где 404.php - страница, которая загружается вместо отсутствующей.
|
|