Редирект Htaccess и настройки
Опубликованно 27.04.2018 02:01
Файлы .htaccess файл можно найти в корневой каталог сайта (например, /home/user/sitename/) или его подкаталогах. Они используются для организации перенаправления (переадресации) посетителей домена или документ на вашем веб-сервера на другой. Каждый файл .htaccess содержит набор правил (рекомендаций), в соответствии с которыми веб-сервер перенаправляет пользователя на ту или иную страницу.
Многие системы управления контентом принимают настройке переадресации сайта .htaccess. Вы можете редактировать файлы, созданные с помощью CMS, вводя новые директивы переадресации, или создать ваши собственные файлы .htaccess вручную.
Создание файла .htaccess
На первом этапе настройки переадресации .htaccess-это, на самом деле, создание самого файла. Ваш .htaccess должен быть простой текстовый файл. Это означает, что вы должны создать в вашей программе редактирования текста, возможность создавать файлы в формате обычного текста (.txt). На компьютере Windows, вы можете использовать "блокнот", который является одним из встроенных стандартных программ. На Mac, вы можете использовать TextEdit. Сначала вы должны открыть меню «Настройки» в "TextEdit" и в разделе «Новый документ» выбрать «Простой текст». После этого вы можете начать процесс создания нового текстового документа редактирование текста для файла .htaccess. На Linux, вы можете использовать один из многих текстовых редакторов, доступных для вашего распределения – в качестве консоли (vi, nano) и графики (например, gedit).
При сохранении документа обязательно звоните htaccess.txt. Если вы сохраните просто .htaccess, компьютер позволяет скрыть файл. Это происходит потому, что файлы, начинающиеся с точки, считаются системные файлы. Скачать файл .htaccess на сервере
Для перенаправления .htaccess файл должен быть загружен в точно такой же каталог на сервере, для которого вы хотите задать параметры переадресации. Как правило, это каталог файлов (/var/www/vhosts/example.com/httpdocs/), хорошо, что можно скачать и в любой каталог на вашем сервере.
Как только файл загружается, переименуйте его непосредственно .htaccess.
На данный момент, файл может стать невидимой для вашего FTP-клиента, потому что теперь он имеет формат файловой системы. Многие FTP-клиенты позволяют просматривать скрытые файлы и папки – рекомендуется включить эту функцию. Для получения инструкций по включать, обратитесь к документации вашего клиента. Проверьте, что .htaccess
Самый простой способ проверить, поддерживает ли веб-сервер свой файл .htaccess является его намеренное коррупции.
Измените файл .htaccess так, чтобы первая строка начинается со слова Test:
Тест
# Установить домашнюю страницу
DirectoryIndex page.html page.txt ...
Теперь, если вы обновите главную страницу своего сайта, вы увидите следующую ошибку (фото ниже).
Если эта ошибка появляется, это, в самом деле, хорошо - означает, что сервер обрабатывает файл и считывает его, директивы переадресации. Если нет, убедитесь, что файл и каталог, в котором он находится, доступны для чтения и, если необходимо, измените права доступа. Немного о приоритетах перенаправление .htaccess
Правила .htaccess являются рекурсивными. Это директива записывается в файл /home/user/sitename_html/.htaccess будут применены и в эту папку и ее подпапки - если конкретное правило будет отменено с помощью директивы в файле .htaccess, расположенный в дочерний каталог.
Таким образом, настройка переадресации .htaccess, задаваемых в файле на более высокий уровень, параметры файлов, расположенных на более низких уровнях. Например, если вы хотите включить перенаправление на большую часть вашего веб-сайта, но отключить для определенного каталога, вы можете сформировать другой .htaccess с соответствующими параметрами, а затем скачать только в этом каталоге.
Файлы .htaccess нижнего уровня переопределяют параметры из PHP в файлах vhost.conf и php.ini на более высоких уровнях, за исключением случаев, если замена не будет явно запрещено для этих файлов.
Наконец, порядок, правила переадресации .htaccess в файл может иметь значение для некоторых типов руководства. Список правил, анализируется от начала до конца; директивы в начале файла, будут выполняться в первую очередь.
Перенаправление .htaccess: основные виды
Существуют различные виды переадресаций, которые могут быть файлы .htaccess. Разберем их, и рассмотреть каждый тип, прежде чем научиться их использовать. 301: постоянный
Это наиболее распространенный тип переадресации и, скорее всего, это тот, который вы будете часто регулировать. В файл .htaccess 301 редирект на страницы указывает, что его старый URL-адрес (URL) больше не используется. 302: временное перенаправление
302 перенаправление указывает на то, что старый URL-адрес страницы временно отключена, но будет восстановлен в ближайшем будущем. Для сервера Apache является правилом перенаправления по умолчанию.
Поэтому, прежде чем настраивать перенаправление .htaccess, необходимо определить, постоянно или временно будет перенаправление. Для примеров в этой статье, мы будем использовать переадресацию 301.
Примеры сценариев перенаправления
Вот наиболее типичные примеры перенаправления .htaccess.
Чтобы использовать их, вы должны открыть файл, который вы создаете .htaccess в любом текстовом редакторе и внести в него необходимый пример кода.
Код работает, веб-сервер Apache должен быть включен модуль перезаписи (mod_rewrite). Для этого необходимо выполнить ряд действий в зависимости от ОПЕРАЦИОННОЙ системы.
На Windows, выполните следующие действия:
Найдите и откройте файл .http.конф. Он находится в директории, в которой у вас установлен Apache.
Создайте резервную копию http.conf, в случае необходимости, восстановить файл, если вы делаете ошибки.
Найдите в файле строку #LoadModule rewrite_module modules/mod_rewrite.so и раскомментируйте (уберите #).
Найдите блок, заключенный в теги <directory> и заменить <directory/> Options All AllowOverride All </directory>.
Найти все ссылки на "AllowOverride None" везде и замените их на "AllowOverride All".
Перезапустите веб-сервер и браузер.
На Linux, достаточно выполнить в терминале:
sudo a2enmod rewrite
Эта команда запустит модуль, либо отображается уведомление о том, что модуль уже запущен. Для реализации новых изменений, перезапустите Apache команду в терминале:
sudo service apache2 restart
Теперь мы можем приступить к редактированию файла .htaccess и обучения наиболее распространенные директивы переадресации.
1. Перенаправление на другую страницу .htaccess:
Redirect 301 /retiredpage.html http://www.example.com/newpage.html
2. Переадресация папки (со всем содержимым):
RedirectMatch 301 ^/olddir/ http://www.yourdomain.com/newdir/
3. Перенаправление страницы .htaccess с удалением WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sitename.com$ [NC]
RewriteRule ^(.*)$ http://sitename.com/$1 [L,R=301]
4. Перенаправление с добавлением WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.samplehost.com$ [NC]
RewriteRule ^(.*)$ http://www.samplehost.com/$1 [L,R=301]
5. Перенаправление на другой домен .htaccess (перенос всего сайта):
RedirectMatch 301 ^(.*)$ http://www.yoursite.com
6 .htaccess-редирект HTML-файлов, PHP файлов:
RedirectMatch 301 (.*).html$ http://www.examplesite.com$1.php
7. Переадресация страницы с добавлением HTTPS:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=permanent,L]
8. Заменить все заглавные буквы в URL, который нужно ввести:
<IfModule mod_rewrite.c>
RewriteMap lc int:tolower
</IfModule>
Этот фрагмент кода, вы должны добавить в httpd.конф вашего веб-сервера. После этого, вы хотите открыть файл .htaccess и сделать:
RewriteEngine On
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]
9. Использование регулярных выражений. Правила перенаправления часто содержат символы, которые образуют регулярное выражение. Благодаря этому, сервер точно знает, что вы хотите изменить в URL-адрес. Однако регулярные выражения могут быть трудно понять с первого взгляда. Вот некоторые из общих элементов, которые вы можете увидеть и использовать в своих правилах перезаписи URL-адресов, а также конкретные примеры их использования:
^ : начало сменный цепи;
$ : сменный интернете.
Пример: регулярное выражение ^folder1$ дает сигнал, чтобы найти и заменить текст «папка1» внутри ссылки.
. : любой символ, который не является пробелом (например, a, B, 3);
* : указывает, что предыдущий текст может быть повторен неограниченное число раз;
Пример: регулярное выражение ^uploads.*$ позволяет заменить текст «uploads2009», «uploads2010» и так далее;
Регулярное выражение ^.*$ означает «найти что-то». Это полезно, если вы не знаете, что пользователь может ввести в тексте URL.
() : выделяют фрагмент текста, который должен быть использован в правило, как значение переменной $1. Это необходимо, например, для обработки запросов в отдельные файлы, которые должны быть одинаковыми для старой и новой версии URL-адреса.
Ошибка 404 Not Found
Иногда, таким образом, что при настройке перенаправления происходят ошибки. Рассмотрим основные причины, почему может не работать переадресация .htaccess.
Распространенная ошибка 404 Not Found при переадресации. В этом случае, вы должны внимательно изучить сформированный URL-адрес в адресной строке. Существует ли файл в новое местоположение на сервер, указанный в правиле перенаправления? Возможно, вам придется скопировать файлы из старого местоположения в новое место, или сделать правило перенаправления более широкой, так, что в случае отсутствия нужного файла по ссылке происходит перенаправление на главную страницу сайта.
Если же URL-адрес, просто не является допустимым (например, http://example.com/folder1//file.html - обратите внимание на два слэша), вам нужно пересмотреть синтаксис, правила переадресации. Бесконечность URL-адрес, время ожидания или цикл
Если возникают при перенаправлении URL-адрес слишком длинный или слишком долго не загружается, или браузер выдает сообщение об ошибке, перенаправление, скорее всего, несколько правил передачи конфликта.
Нужно проверить весь файл .htaccess на тему правил передачи данных, которые могут соответствовать другим правилам. Может потребоваться также проверка файлов .htaccess во вложенных каталогах. Пожалуйста, обратите внимание, что FTP не будет показывать файлы .htaccess, если у вас не включена возможность отображать скрытые файлы и папки.
Кроме того, вы можете включить перенаправление внутри HTML и PHP страниц. Проверьте страницы, на которой возникает проблема, по поводу внутренних ссылок.
Добавление от [L] после правила перенаправления могут помочь в некоторых случаях, так как этот показатель контролируется сервером прекратить попытки перенаправления URL-адреса после применения правила. Как сделать переадресацию .htaccess
В заключение, мы рассмотрим, как сделать перенаправление URL-адреса, без изменения файла .htaccess, используя виртуальный хост Apache. Кроме того, этот метод является более простым, чем создание правил переадресации страницы .htaccess.
Открыть в текстовом редакторе конфигурационный файл vhost (httpd.conf), который обычно находится в каталоге /etc/apache2/sites/sitename.
Выборку файла демонстрирует перенаправление:
<VirtualHost *:80>
ServerName www.mysite.com
ServerAlias www.mysite.com
Redirect / http://mysite.com
</VirtualHost>
Выше конфигурации перенаправляет все запросы на домен без поддомена WWW.
Для перенаправления всех запросов на домен, поддомен WWW, измените настройки, как показано ниже.
<VirtualHost *:80>
ServerName anywebsite.com
ServerAlias anywebsite.com
Redirect / http://www.anywebsite.com
</VirtualHost>
Перезапустите Apache, и сайт начинает корректно перенесены. Метод является наиболее простым, и легко понять, что перенаправление на другую страницу в htaccess.
Категория: Техника