Переадресация Htaccess и его установка


Опубликованно 20.02.2018 05:08

Переадресация Htaccess и его установка

Файлы .htaccess в корне сайта (например /home/user/sitename/) или его подкаталоги. Они предназначены для организации диверсий («редирект») посетителей с одного домена или документ на вашем веб-сервера на другой. Каждый Файл .htaccess содержащий набор правил (политик), после чего Web-сервер перенаправляет пользователя на ту или иную сторону.

Многие системы управления контентом принять настройки для переадресации сайта .htaccess. Вы можете редактировать файлы, созданные вашей CMS, внедрение новой политики перенаправления или создавать свои собственные файлы .htaccess вручную.

Создает файл .htaccess

Первым шагом для настройки переадресации .htaccess является собственно создание самого файла. Ней .htaccess файл должен быть простой текстовый файл. Это означает, что вам нужно сделать это отредактировать в программе текст, в состоянии генерировать файлы plain text (.txt). На компьютере с ОС Windows можно использовать "блокнот", встроенный в стандартное программное обеспечение. На Mac вы можете TextEdit. Сначала нужно открыть меню «настройки» в TextEdit и в разделе «Новый документ» выберите «обычный текст». После этого вы можете начать процесс создания нового текста в документ TextEdit для вашего файла .htaccess. На Linux вы можете использовать любой из многочисленных текстовых редакторов, которые для вашего дистрибутива, как консоль (vi, nano), так и графический (например, gedit).

При сохранении документа обязательно htaccess.txt называют это. Если вы просто сохраните его в качестве .htaccess, чтобы скрыть ваш компьютер файла. Это происходит потому, что файлы начинающиеся с точки, считаются системные файлы. Файл скачать .htaccess на сервер

Для правильной переадресации .htaccess файл должен перенаправить загружаются в директории на сервере, для которого вы хотите задать. Как правило, это каталог HTML-файлы (/var/www/vhosts/example.com/httpdocs//), хотя его можно скачать и в любой подкаталог на вашем сервере.

После загрузки файла, переименуйте его прямо на .htaccess.

На этом этапе файл невидимым для вашего FTP-клиента, потому что теперь он имеет формат файловой системы. Многие FTP-клиенты позволяют просматривать скрытые файлы и папки – рекомендуется включить эту функцию. Дальнейшие инструкции по активации можно найти в документации вашего клиента. Работа .htaccess

Чтобы проверить самым простым способом, будь обрабатывает Web-сервер файл .htaccess, это умышленное повреждение.

Отредактируйте файл .htaccess так, что первая строка начинается со слова Test:

Тест

# Установить домашнюю страницу

DirectoryIndex page.html page.txt ...

Теперь, если вы запустите главную страницу сайта, вы увидите сообщение об ошибке (Рисунок ниже).

Если эта ошибка появляется, то это на самом деле хорошо - так что сервер обрабатывает файл и читает из него директиву Redirector. Если нет, убедитесь, что файл и каталог, в котором он находится, должны прочитать и при необходимости измените разрешения. Немного о приоритетах пересылки .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 в любом текстовом редакторе и взять его в желаемом примере.

Код, в котором Web-сервер Apache должен быть модуль rewrite (mod_rewrite) включен. Это требует ряд действий в зависимости от операционной системы.

На Windows, выполните следующие действия:

Найдите и откройте файл .http.conf. Он находится в каталоге, в котором вы установили Apache.

Создайте резервную копию http.conf, чтобы при необходимости восстановить файл, если вы допустите какие-либо ошибки.

Найдите в файле строку #так LoadModule rewrite_module modules/mod_rewrite.так и Комментировать его (убрать знак#).

Найти блок, заключенный в теги <directory> и заменить его на <directory/> Options All AllowOverride All </directory>.

Найдите все ссылки на "AllowOverride None" и замените его везде на "AllowOverride All".

Запустите веб-сервером и вашим браузером.

На Linux достаточно в терминале выполнить:

sudo a2enmod rewrite

Эта команда запускает модуль или уведомление о том, что модуль уже запущен. Новые изменения, пришпорить перезапускаем апач командой в терминале:

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.conf веб-сервера. После этого файл должен быть открыт .htaccess и вы с:

RewriteEngine On

RewriteCond %{REQUEST_URI} [A-Z]

RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]

9. Использование регулярных выражений. Правил для маршрутизации часто содержат символы, которые выражаются в регулярных. Таким образом, сервер точно знает, что вы хотите изменить в URL. Регулярные выражения могут быть сложны, однако для понимания на первый взгляд Вот некоторые общие элементы, которые можно увидеть и в правилах использовать URL-рерайтинг, а также конкретные примеры их использования:

^ : В начале заменяемых строк;

$ : конец заменяемых строк.

Пример: регулярное выражение ^folder1$ дает сигнал, чтобы найти и заменить текст «folder1» внутри ссылки.

. : любой символ, не являющийся пробелом (например, 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, Timeout или цикл

Если не загружается при переадресации 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

Псевдоним сервера www.mysite.com

Redirect / http://mysite.com

</VirtualHost>

Настройки, указанные выше, перенаправляет все запросы на домен без поддомена WWW.

Так они направляют все запросы на домен с субдоменом WWW, измените настройки, как показано ниже.

<VirtualHost *:80>

ServerName anywebsite.com

Псевдоним сервера anywebsite.com

Redirect / http://www.anywebsite.com

</VirtualHost>

Перезагрузите Apache и сайт будет перенаправлен правильно. Приведенный выше метод является наиболее простым, и его легче осуществить, чем редирект с одной страницы на другую в htaccess.



Категория: Hi-Tech