Редирект Htaccess и настройки


Опубликованно 07.05.2018 04:00

Редирект Htaccess и настройки

Файлы .htaccess может быть в корне сайта (например, /home/user/sitename/) или ее подпапках. Используются для организации перенаправления ("redirect") посетителей домена или документ на своем веб-сервера на другой. Каждый файл .htaccess содержит набор правил (политик), в соответствии с которыми веб-сервер перенаправляет пользователя на той или иной странице.

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

Создание файла .htaccess

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

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

Для перенаправления через .htaccess файл должен быть загружен в каталог на сервере, для которого вы хотите настроить параметры переадресации. Как правило, это каталог файлов HTML (/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.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

Эта команда запустит модуль или подает сигнал, что двигатель уже запущен. Чтобы привести в действие новых изменений, перезагрузить 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}/$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-адрес, время ожидания, или цикл

Если при перенаправлении URL слишком длинный, или страница слишком долго не загружается, или ваш браузер дает сообщение об ошибке перенаправление, скорее всего, несколько правил переадресации вызовов в конфликте друг с другом.

Нужно просмотреть весь файл .htaccess на тему правила переадресации вызовов, которые могут совпадать с другими правилами. Также может потребоваться проверить файлы .htaccess во вложенных каталогах. Обратите внимание, что FTP не отображаются файлы .htaccess файл, если вы не включили возможность посмотреть скрытые файлы и папки.

Кроме того, можно включить переадресацию в HTML и PHP страниц. Убедитесь, что страница, с которой это происходит, проблема, тема перенаправления на внутренние.

Добавление от [L] после правила перенаправления могут помочь в некоторых случаях, так как данный индикатор посылает серверу прекратить попытки перенаправления URL-адреса после выполнения стандарта. Как сделать переадресацию без .htaccess

В заключение, давайте посмотрим, как сделать перенаправление URL-адреса без редактирования файла .htaccess, используя виртуальный хост в Apache. Кстати, этот метод более простой, чем создание правил перенаправления страницы .htaccess.

Откройте в текстовом редакторе файл конфигурации хоста (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.



Категория: Новости Tech