Конфигурационный файл .htaccess является конфигом для веб-серверов на Apache. Большинство хостингов работают через этот сервер, поэтому на каждом сайте присутствует этот файл. Вебмастера могут частично управлять его работой внося в него свои изменения. В этой статье мы рассмотрим директивы и правила, которые можно менять в работе сервера.
Самый главный файл .htaccess располагается в корне сайта:
Его действия распространяются на текущий каталог и на все вложенные каталоги. Т.е. у владельцев сайтов есть возможность воздействовать только на работу своего проекта, не мешая работе всего сервера. Если этот файл отсутствует, то его можно создать с помощью любого блокнота. Главное, чтобы название файла было ".htaccess" - без форматов.txt, .doc и т.д.
Через файл .htaccess чаще всего настраивают 301 редиректы на уровне сервера, что сильно ускоряет процесс перехода на новую страницу, т.к. не надо загружать промежуточную страницу. Также здесь прописывается какой файл обрабатывает 404 ошибку .
Чуть ниже мы рассмотрим все распространенные варианты редиректов через .htaccess , а для начала ознакомимся с опциями и правилами.
Чтобы иметь возможность работать с редиректами нужно включить модуль ReWriteEngine . Для этого необходимо прописать две строчки кода (желательно в самом верху файла .htaccess ):
Options +FollowSymLinks RewriteEngine OnРазместите эти строки в самом верху файла .htaccess , чтобы иметь возможность работать с директивами модуля mod_write.
Также на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).
1. Правила Redirect, RewriteRule и RewriteCond 1.1. Директива RedirectСинтаксис Redirect :
Redirect /откуда http://куда_полный_адресRedirect устанавливает прямой редирект с одной страницы на другую.
В status пишут код редиректа. Является необязательным параметром. Чаще всего пишут 301, что сигнализирует о постоянном смене адреса страницы.
Важно, чтобы страница "откуда" была прописана в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша "/" (т.е. с корня сайта). Страницу куда идет редирект нужно писать полностью, т.е. абсолютный адрес страницы URL (т.е. с названием домена и протокола http или https).
Например
Redirect 301 /oldpage.php http://site/newpage.phpМожно также писать по другому
RedirectPermanent 301 /oldpage.php http://site/newpage.php или Redirect permanent 301 /oldpage.php http://site/newpage.php 1.2. Директива RewriteRuleДиректива RewriteRule устанавливает правила перехода. Синтаксис следующий:
RewriteRule Шаблон Подстановка [коды]- При внешнем редиректе меняется урл адреса в строке браузера - " "
- При внутреннем - не меняет урл адреса в строке браузера - " " или "[L] "
Директива RewriteCond определяет условия при котором выполняется правила в RewriteRule.
RewriteCond Сравниваемая_Строка УсловиеНапример, этими условиями могут быть браузер пользователя, IP-адрес , заголовок и т.д.
1.4. Директива RedirectMatchДиректива RedirectMatch аналогична Redirect с той лишь разницей, что позволяет записывать регулярные выражения.
RedirectMatch Откуда Куда 2. Примеры 301 редиректов в.htaccessМы уже рассматривали множество примеров с редиректом по .htaccess в статьях:
- Смена адреса сайта - редирект со старого домена на новый
Здесь мы дополним варианты редиректов, которых еще не было.
2.1. Редирект с одной страницы на другуюРедирект с site.ru/cat/oldpage на site.ru/newpage.html
RewriteRule ^cat/oldpage.* /newpage.htmlИли второй вариант:
Redirect 301 /cat/oldpage http://www.site.com/newpage.php 2.2. Редирект со всех файлов.htm на.html RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.htm$ $1.htmlИли второй вариант:
RewriteRule ^(.*)\.htm$ $1.html 2.3. Редирект всего каталога на другую страницуС любой страницы в каталоге и подкаталогах /old/ будет происходит редирект на /new.php
RewriteRule ^old(.*)$ /new.php 2.4. Удаление лишних слэшей в адресе URLНапример, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 2.5. Реврайт без редиректаМожно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html , а в адресной строке будет отображаться адрес /news/happy
RewriteRule ^news/happy.* /news.html [L] 2.6. Простановка замыкающего слеша в конце адреса главной страницаНапример, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru . Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/
RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ 2.7. Удаляем директорию каталога из URLНапример для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:
RewriteRule ^directoriya/(.+)$ http://site.com/$1Или второй вариант:
RewriteCond %{DOCUMENT_ROOT}/directoriya/$1 -f RewriteRule ^(.*)$ directoriya/$1 2.8. Редирект GET параметровНапример, сделать редирект со страницы /?act=page&id=2 на /page-2/
RewriteCond %{QUERY_STRING} act=page RewriteCond %{QUERY_STRING} id=(\d+) RewriteRule .* /page/%1/? ] 2.9. Редирект на мобильную версию сайта m.site.ruВ данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства {HTTP_USER_AGENT} , далее происходит замена адреса сайта на m.URL
RewriteCond %{HTTP_HOST} ^(.*)$ RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1 2.10. Редирект с поддоменаНапример, выполним редирект с любой страницы поддомена poddomen.site.ru на основной домен site.ru
RewriteCond %{HTTP_HOST} ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} 3.Другие примеры с htaccess 3.1. Запретить IP-адрес и браузерЗапретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55
RewriteCond %{HTTP_USER_AGENT} MSIE RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$ RewriteRule ^.*$ - [F] 3.2. Запретить конкретный файлЗапретим для всех файл disable_file.html :
deny from all 3.3. Разрешить доступ с одного ipДоступ будет разрешен только с одного ip-адреса 172.111.222.55
order deny,allow deny from all allow from 172.111.222.55 3.4. Запретить доступ с разных ipЗапретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*
order deny,allow deny from all deny from 172.112.222.55 deny from 172.113.222.55 deny 172.114.*.* 3.5. Редирект в URL с больших символов на маленькиеВсе большие буквы в адресе URL будут переведены на маленькие.
RewriteRule - RewriteRule ! - RewriteRule ^([^A]*)A(.*)$ $1a$2 RewriteRule ^([^B]*)B(.*)$ $1b$2 RewriteRule ^([^C]*)C(.*)$ $1c$2 RewriteRule ^([^D]*)D(.*)$ $1d$2 RewriteRule ^([^E]*)E(.*)$ $1e$2 RewriteRule ^([^F]*)F(.*)$ $1f$2 RewriteRule ^([^G]*)G(.*)$ $1g$2 RewriteRule ^([^H]*)H(.*)$ $1h$2 RewriteRule ^([^I]*)I(.*)$ $1i$2 RewriteRule ^([^J]*)J(.*)$ $1j$2 RewriteRule ^([^K]*)K(.*)$ $1k$2 RewriteRule ^([^L]*)L(.*)$ $1l$2 RewriteRule ^([^M]*)M(.*)$ $1m$2 RewriteRule ^([^N]*)N(.*)$ $1n$2 RewriteRule ^([^O]*)O(.*)$ $1o$2 RewriteRule ^([^P]*)P(.*)$ $1p$2 RewriteRule ^([^Q]*)Q(.*)$ $1q$2 RewriteRule ^([^R]*)R(.*)$ $1r$2 RewriteRule ^([^S]*)S(.*)$ $1s$2 RewriteRule ^([^T]*)T(.*)$ $1t$2 RewriteRule ^([^U]*)U(.*)$ $1u$2 RewriteRule ^([^V]*)V(.*)$ $1v$2 RewriteRule ^([^W]*)W(.*)$ $1w$2 RewriteRule ^([^X]*)X(.*)$ $1x$2 RewriteRule ^([^Y]*)Y(.*)$ $1y$2 RewriteRule ^([^Z]*)Z(.*)$ $1z$2 RewriteRule - [N] RewriteCond %{ENV:HASCAPS} TRUE RewriteRule ^/?(.*) /$1Рано или поздно у любого владельца сайта может возникнуть необходимость в перенаправлении посетителей и роботов поисковых систем на другую старицу. Именно редирект поможет сделать эту процедуру быстро и незаметно для пользователей. Постараемся разобраться, что такое редирект и как его применять.
Понятие редиректаОтветить на этот вопрос несложно всем, кто более или менее владеет английским языком. Дословно в переводе с английского слово "редирект" означает "переориентировать" или "переадресовать". Для владельцев сайтов и программистов редирект - это простой и эффективный способ подмены страницы сайта на другую, отличную от запрошенной изначально. Это означает, что посетитель набирает в адресной строке один адрес, а попадает на совершенно другой ресурс. Нередко бывает, что редирект не соответствует запросам юзера.
Для чего он требуется?Чтобы понять, какой из типов переадресации подходит вам лучше всего, кратко рассмотрим каждый из них, опишем основные особенности.
- 300 — выбор одного варианта из нескольких. Чаще всего используется автоматически для выбора нужного языка или кодировки.
- 301 — перемещение навсегда. Как раз такой вид переадресации используется при переезде сайта.
- 302 — временный редирект. Используется для временной переадресации юзеров и поисковых систем с одного адреса на другой.
- 303 — ресурс, который запрашиваете, находится по другому адресу. Следует отметить, что такой редирект используется поисковыми системами: когда результатом поиска является всего одна страница, юзера сразу перенаправляют на нее.
- 305 - используйте прокси. Доступ к документу с таким типом редиректа доступен только с использованием прокси-сервера.
- 307 - еще один временный редирект.
Редирект с кодом 304 указывает на то, что наполнение страницы осталось прежним, а 306 код припасен на возможные будущие нужды.
Несмотря на явную пользу редиректов, из-за того, что они могут использоваться и используются не в интересах пользователей, поисковые системы относятся к ним весьма настороженно. Аргументируется это тем, что такие скрипты не позволяют произвести качественную индексацию сайтов, снижая продуктивность работы поисковых роботов. Единственным типом переадресации, который поисковики воспринимают нормально, является постоянный редирект - 301.
Как сделать редирект?Переадресацию можно настроить несколькими способами. Рассмотрим каждый из них отдельно.
Редирект сайта или страницы через htaccess прописывается следующим образом:
- Redirect /page-А.html /page-В.html - перенаправление со страницы А на страницу В.
- Redirect / http://site2.ru/ - переадресация на сайт2.
Чтобы "склеить" домены, в файл.htaccess, необходимо добавить следующие строки:
- RewriteEngine on
- RewriteCond %{HTTP_HOST} ^www.example\.ru
- RewriteRule ^(.*)$ http://example.ru/$1
Редирект на php будет выглядеть так:
- - перенаправление на сайт А;
- - редирект на страницу А.
Учитывайте, используя HTML-редирект , что такой код нужно добавлять с помощью метатега:
- Перенаправление будет происходить на сайт А. В данном метатеге можно регулировать время перенаправления. Если установить значение, отличное от нуля, то редирект будет происходить через указанное время.
- - перемещение на страницу А сайта А произойдет через 10 секунд.
Через JavaScript . Перенаправление посетителя на сайт А:
- location="http://siteA.ru"
Разобраться в том, что такое редирект, не составит труда уверенным пользователям.
Редирект 301 - Здесь, на самом деле, все не так сложно, как может показаться.
После знакомства с этим руководством, вы не только будете знать, что такое 301, но и с легкостью сможете применить знания на практике.
Один из случаев применения редиректа 301 является переход на новый домен. Или же перенаправление с одной конкретной страницы сайта на другую. А теперь, к делу.
Все, что вам нужно, это доступ к файлу.htaccess, и возможность редактировать и загружать этот файл на сервер (возможно, загружать его и не придется, так как многие сервера поддерживают cPanel, которая позволяет редактировать файл.htaccess непосредственно на сервере).
Зачем делать редирект 301?301 используется для создания перенаправления с одной страницы на другую в пределах одного того самого домена, или же на совершенно другой домен. 301 используют в следующих случаях:
1. Изменение имени файлов и/или их расширений: редирект 301 может быть использован, когда вы хотите изменить файловую структуру вашего сайта или изменить расширения файлов (например, переход от html к php)..html, будут перенаправлены на сайт/newfile.php или ту страницу, которую вы укажете в.htaccess.
2. Переезд на новый домен : редирект 301 – это ключевой момент при изменении доменного имени. Когда пользователи будут переходить на страницы на вашем старом домене, их автоматически будет перенаправлять на новые страницы на новом доменном имени..html, он будет автоматически перенаправлен на newdomain.com/page1.html.
3.SEO : редиректы 301 широко используются в SEO, потому что они сообщают поисковым роботам, что страница перенаправляется навсегда. Также, с помощью 301 редиректа можно без потерь перенести позиции старых страниц на новые. Даже наглядную картинку для Вас подглотовил:
4.Партнерские ссылки: редиректы также обычно используются для , что может увеличить активность пользователей, и позволит не использовать прямые исходящие ссылки на партнерские программы. Вы создаете страницу с соответствующим названием файла, и применяете к ней перенаправление 301 на партнерский сайт. Например, вместо размещения прямой ссылки на partnerkaprimer.com/affiliate-offer.html, вы создадите страницу на своем сайте с именем файла “merchantxyz.html”, и при переходе пользователей на эту страницу vashdomen.ru/click/merchantxyz.html, они автоматически будут перенаправляться на partnerkaprimer.com/affiliate-offer.html. Как правило, вам ещё нужно добавить атрибут к ссылке на вашу страницу merchantxyz.html, чтобы партнерская ссылка не индексировалась.
5. PHP: редирект может быть использован вместо PHP-перенаправления, но если на вашем сайте много ссылок на партнерские ресурсы, то надежнее создать простой скрипт, который будет перенаправлять пользователей.
Как сделать и настроить 301 редиректПришло время взглянуть, что на практике являет собой 301 редирект.
Пример 1. Вы изменили имя одного из файлов на сайте.
Старое имя файла /oldpage.html, новое — /newpage.html. В файле.htaccess вам нужно прописать такой код:
redirect 301 /oldpage.html http://www.vashdomen.ru/newpage.html
Пример 2. Вы заменили.html страницу на.php, но имя оставили то же.
Старое имя файла /yourpage.html, новое — /yourpage.php. Код практически идентичный предыдущему, только меняем расширение:
redirect 301 /yourpage.html http://www.vashdomen.ru/you-page.php
Допустим партнерская ссылка такая — partnerkaprimer.com.com&affid=64564242. Честно говоря, такая ссылка вряд ли внушает спокойствие и доверие пользователей. Сначала стоит создать страницу /merchant-offer.html на вашем сайте, с которой мы будем перенаправлять пользователей на партнерское предложение. Теперь осталось разместить ссылку на страницу vashdomen.ru/merchant-offer.html и не забыть об атрибуте rel=”nofollow”. Также можно оформить ссылку в виде кнопки или изображения. В файле.htaccess вам нужно прописать:
redirect 301 /merchant-offer.html http://www.merchantdomain.com&affid=64564242
Пример 4. Перенаправление с домена с www на без:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.vashdomen.ru
RewriteRule ^(.*)$ http://vashdomen.ru/$1
И наоборот:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vashdomen.ru
RewriteRule (.*) http://www.vashdomen.ru/$1
Как видите, не все так сложно. Теперь вы знаете, что такое редирект 301 , и как его использовать на своем сайте, если вдруг захотите сменить доменное имя.
Довольна сложная и интересная тема. Многие, почти все начинающие блогеры даже понятия не имеют, что такое 301 редирект. Я как-то уже касался этой темы в статье про дубли контента и теперь мы рассмотрим ее поподробней.
Что такое 301 редирект? Это специальный код, который возвращает сервер при обращении к определенному URL.
Что это значит? Это значит, что если вы набрали в адресной строке браузера определенный URL, то Вас перенаправят на новый адрес.
Для чего это все нужно? Возьмем пример из реальной жизни. Заходите вы по определенному адресу, а вам говорят — «А здесь теперь такие не живут! Они совсем своим имуществом переехали на другую улицу и вот Вам их новый адрес…» Согласитесь полезная информация? Я не зря сказал — «…со все своим имуществом» т.е они не чего не оставили на старом адресе. Это важно!
Если Ваш проект по какой-то причине переехал на новый адрес, то как раз 301 редирект подскажет поисковому роботу где Вас искать, причем Ваш сайт не потеряет вес и другие показатели при переезде.
Прописываем 301 редирект в файле.htaccessЧтобы выполнить сие действие надо в файле.htaccess прописать следующее:
Где «/» означает, что все начиная с «головы» сайта включая все подкаталоги будет переадресовано на новый адрес.
Не забудьте сделать резервную копию сайта если вдруг что-то пойдет не так!
Теперь рассмотрим другую ситуацию. У меня есть 2 квартиры, а живу я лишь в одной. Ко мне приходят письма по другому адресу, звонит телефон, заходят разные люди и т.д. А я забыл повесить объявления, что нахожусь я вообще в другом месте. Забавная история! Получается я теряю собственные авторитет в глазах окружающих из-за своей забывчивости.
Из этого вывод. Надо непременно указать поисковому роботу точный адрес проекта, например: www.сайт.com или просто сайт.com потому, что это два разных адреса.
Как это осуществить смотрите на этом примере:
Перенаправление с www на без www
Перенаправление с без www на с www
Надо заметить, что если в файле.htaccess уже прописана строчка RewriteEngine On, то ее повторять уже не надо и не забудьте вписать свой домен.
Существует мнение, что с защищенного протокола https:// также надо перенапралять пользователей на основной протокол http:// Я даже обратился в службу поддержки своего хостинг провайдера с этим вопросом. На что мне ответили, что возможность перенаправления есть и для этого в файле.htaccess необходимо прописать следующее:
Бывает такие случаи, что необходимо перенести только одну страницу при этом сохранить ее вес. Для этого в файле.htaccess прописываем:
В этой статье я постарался описать самые распространенные случаи использования 301 редиректа, которые необходимо знать каждому веб-мастеру. На самом деле возможности 301 редиректа на этом не ограничиваются и в будущем я еще не раз буду возвращаться к этой теме, так что советую подписаться на обновления блога .
До встречи!
С уважением, Виталий Кириллов
Хотите перенаправить URL-адрес из одного места в другое? В этом простом руководстве мы покажем, как можно это сделать с помощью Apache / .htaccess , PHP , JavaScript , HTML и т. д. Каждый метод редиректа HTML мы кратко поясним и продемонстрируем готовые к использованию примеры.
Редирект URL-адресов с помощью PHPРедирект с помощью PHP выполняется с помощью функции header() , например:
Эта функция должна быть вызвана в начале веб-страницы до вывода HTML-кода . Чтобы узнать больше о настройке этого метода, ознакомьтесь с документацией PHP .
Чтобы выполнить редирект с помощью PHP через определенное время:
Редирект на example.com выполняется через 5 секунд. Вы можете изменить это значение на необходимое.
Редирект URL-адресов с помощью JavaScriptВот самый простой способ index html редиректа с помощью JavaScript :
document.location.href = "http://example.com/";
Редирект URL-адресов с помощью HTMLМожно перенаправить пользователя на новый URL-адрес , используя старый добрый HTML . Вот пример:
Это называется meta-refresh редирект. Можно задать время (в секундах ), изменив 10 на необходимое число. Обратите внимание, что этим методом редиректа часто злоупотребляют спамеры. Поэтому будьте осторожны, если вы реализуете его на общедоступном сайте.
Редирект URL-адресов с помощью PerlВот два способа редиректа URL-адресов с помощью Perl :
#!/usr/bin/perl print "Location: http://example.comnn"; exit;
Редирект URL-адресов с помощью ASP (VB Script)Чтобы перенаправить URL-адрес с помощью ASP , добавьте следующий код:
Редирект URL-адресов с помощью mod_alias Apache
Самый простой способ перенаправления на серверах Apache :
Redirect 301 /old-location.html http://example.com/new-location/
Перед тем, как сделать редирект HTML , этот код нужно добавить в файл .htaccess или файл конфигурации сервера Apache . Вот синтаксис этого метода:
[Директива] [Код состояния] [Старый URL] [Новый URL]
При необходимости можно изменить любой из этих параметров. Например, если нужно подставлять старый URL-адрес динамически, чтобы перенаправить все следующие URL-адреса :
http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03.html . . .
Можно использовать RedirectMatch вместо Redirect :
RedirectMatch 301 /old-directory/file-(.*).html http://example.com/new-directory/file-$1.html
Также можно изменить код статуса с 301 (постоянный редирект ) на 302 (временный редирект ). Или на любой другой действительный код состояния. Ниже приведено руководство по регулярным выражениям, используемым в методе RedirectMatch :
- или отсутствию символа );
- $1 — возвращает шаблон, сопоставляемый первым (.*) .
Более функциональный способ редиректа с помощью Apache — использовать его переписывающий модуль mod_rewrite . Вот несколько примеров, которые можно добавить в .htaccess или в файл конфигурации Apache .
Пример 1: Редирект с www на без wwwЭтот код редиректа HTML перенаправляет все www-версии URL-адресов на их эквивалентные версии без www .
RewriteCond %{HTTP_HOST} ^www.example.com$ RewriteRule (.*) http://example.com/$1
Это называется канонизацией. Вот несколько примечаний о регулярном выражении, используемом в этом примере:
- . — буквально соответствует точке;
- $ — обозначает конец запрошенного URI ;
- (.*) — соответствует любому символу (или отсутствию символов );
Чтобы осуществить редирект HTML с текущего домена на новый:
RewriteRule ^/(.*) https://new-domain.tld/$1
Аналогично можно перенаправить запросы из поддомена текущего сайта на поддомен на новом сайте:
RewriteCond %{HTTP_HOST} (.*).old-domain.tld RewriteRule ^/(.*) https://%1.new-domain.tld/$1
Вот несколько примечаний о регулярном выражении, используемом в этом примере:
- ^ — обозначает начало запрошенного URI ;
- (.*) — соответствует любому символу (или отсутствию символов );
- $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule ;
- %1 — соответствует первому шаблону из круглых скобок (.*) в RewriteCond
- — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.
Обратите внимание : чтобы любой из этих методов работал корректно, оба домена должны иметь одинаковую структуру файлов. Папки и ресурсы на текущем домене также должны существовать и на новом домене. В противном случае вы получите на новом домене кучу ошибок 404 .
Пример 3: Перенаправление всех файлов HTML и PHPВот еще один, более сложный пример скрипта редиректа HTML mod_rewrite :
RewriteCond %{REQUEST_URI} ^/old-directory/(.*).(html|php)$ RewriteRule (.*) http://example.com/new-directory/%1.%2
Мы перенаправляем все запросы к любым файлам HTML или PHP , расположенным в папке /old-directory/ . Все соответствующие запросы перенаправляются в тот же файл, который находится в /new-directory/ . Вот несколько примечаний о регулярном выражении, используемом в этом примере:
- ^ — обозначает начало запрошенного URI;
- (.*) — соответствует любому символу (или отсутствию символов );
- . — буквально соответствует точке;
- (html php) — соответствует либо html , либо php ;
- — делает шаблон нечувствительным к регистру;
- %1 — соответствует первому шаблону из круглых скобок (. *) в RewriteCond ;
- %2 — соответствует второму шаблону из круглых скобок (html|php ) в RewriteCond ;
- — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.
Вот удобный код редиректа html HTML всех ошибок 404 «Not Found» на определенный URL .