Главная > Программы > Apache > htaccess Правильное оформление файла .htaccess | Redirect, RewriteRule, 404
Файл .htaccess служит для управления некоторыми функциями сервера Apache. Все изменения в нём производятся
с помощью внесения определённых записей в любом текстовом редакторе (блокнот, Dreamweaver и пр. Не путать с
текстПроцессорами, типа MSWord). 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" - будет означать, что это правило
выполняется последним в файле .htaccess3. Обработка ошибки 404. Позволяет выдавать одну определённую страницу вместо отсутствующих и вместо ошибки 404. Записывается: ErrorDocument 404 /404.php
Материал взят с сайта: Главная > Программы > Apache > htaccess |