Код состояния HTTP (англ. HTTP status code) со статусом 301 Moved Permanently (Перемещено окончательно) свидетельствует о том, что запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка.
Для чего это нужно?В первую очередь, при изменении доменного имени сайта, необходимо оповестить поисковые системы о смене адреса сайта. Во-вторых, для склейки имени сайта с www и без него. В-третьих для быстрой передачи Page Rank на новый сайт.
PHPСпособ первый
Способ второй
Perl
Способ первый
$cgi = new CGI; print $cgi->redirect("http://www.example.com/");
Способ второй
#!/usr/bin/perl -w use strict; print "Status: 301 Moved Permanently\n"; print "Location: http://www.example.com/\n\n"; exit;
ASP.NETСпособ первый
private void Page_Load(object sender, System.EventArgs e) { Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","http://www.example.com"); }
Способ второй (с версии 4.0)
RedirectPermanent("http://www.example.com");
ASP Ruby on Rails def do_something headers["Status"] = "301 Moved Permanently" redirect_to "http://www.example.com/" end ColdFusion Java (JSP) Веб-сервер Apache (.htaccess)Способ первый (mod_alias, Redirect)
Redirect 301 / http://www.example.com
Способ второй (mod_alias, RedirectPermanent)
RedirectPermanent / http://www.example.com
Способ третий (mod_alias, Redirect permanent)
Redirect permanent / http://www.example.com
Способ четвертый (mod_alias, RedirectMatch)
RedirectMatch 301 ^(.*)$ http://www.example.com/
Способ пятый (mod_rewrite)
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(.*)$ http://www.example.com/$1
6.1KПредположим, что вы хотите, чтобы пользователям, которые переходят на страницу https://example.com/initial.php отображалась страница https://example.com/final.php . Это можно сделать с помощью несколько методов PHP , JavaScript и HTML . В этой статье мы расскажем о каждом из методов, которые можно использовать для PHP перенаправления на другую страницу.
Вот несколько переменных, которые мы будем использовать:
Использование функции PHP header() для редиректа URL-адресаЕсли хотите добавить редирект с initial.php на final.php , можно поместить на веб-странице initial.php следующий код. Он отправляет в браузер новый заголовок location :
Здесь мы используем PHP-функцию header() , чтобы создать редирект. Нужно поместить этот код перед любым HTML или текстом. Иначе вы получите сообщение об ошибке, связанной с тем, что заголовок уже отправлен. Также можно использовать буферизацию вывода, чтобы не допустить этой ошибки отправки заголовков. В следующем примере данный способ перенаправления PHP показан в действии:
Чтобы выполнить переадресацию с помощью функции header() , функция ob_start() должна быть первой в PHP-скрипте . Благодаря этому не будут возникать ошибки заголовков.
В качестве дополнительной меры можно добавить die() или exit() сразу после редиректа заголовка, чтобы остальной код веб-страницы не выполнялся. В отдельных случаях поисковые роботы или браузеры могут не обращать внимания на указание в заголовке Location . Что таит в себе потенциальные угрозы для безопасности сайта:
Чтобы прояснить ситуацию: die() или exit() не имеют отношения к редиректам. Они используются для предотвращения выполнения остальной части кода на веб-странице.
При PHP перенаправлении на страницу рекомендуется использовать абсолютные URL-адреса при указании значения заголовка Location . Но относительные URL-адреса тоже будут работать. Также можно использовать эту функцию для перенаправления пользователей на внешние сайты или веб-страницы.
Вывод кода JavaScript-редиректа с помощью функции PHP echo()Это не является чистым PHP-решением . Тем не менее, оно также эффективно. Вы можете использовать функцию PHP echo() для вывода кода JavaScript , который будет обрабатывать редирект.
Если воспользуетесь этим решением, то не придется использовать буферизацию вывода. Что также предотвращает возникновение ошибок, связанных с отправкой заголовков.
Ниже приводится несколько примеров, в которых использованы разные методы JavaScript для редиректа с текущей страницы на другую:
Единственным недостатком этого метода перенаправления на другой сайт PHP является то, что JavaScript работает на стороне клиента. А у ваших посетителей может быть отключен JavaScript .
Использование метатегов HTML для редиректаТакже можно использовать базовый HTML для выполнения редиректа. Это может показаться непрофессиональным, но это работает. И не нужно беспокоиться о том, что в браузере отключен JavaScript или ранее была отправлена ошибка заголовков:
Также можно использовать последнюю строку из предыдущего примера, чтобы автоматически обновлять страницу каждые «n » секунд. Например, следующий код будет автоматически обновлять страницу каждые 8 секунд.
Довольно важный момент при настройке сайта. Неправильно настроенный редирект может сильно повредить поисковой выдачи сайта. Самые распространённые ситуации, в которых приходиться использование Permanent Redirect 301:
- Смена адреса сайта - вы купили свой домен и решили переехать с site.example.com на site.ru
- Склейка зеркал - если ваш сайт доступен по адресу www.site.ru и site.ru, поисковые системы могут посчитать это как два разных сайта, поэтому для начала необходимо определиться с главным зеркалом (с www или без www) и настроить редиректы на основное зеркало.
- Когда страница (одна или несколько) сменила свой адрес - в какой то момент стало понятно, что адреса http://example.com/index.php?option=com_content&task=view&id=23&Itemid=1 не есть хорошо, и нужно их переделать в http://example.com/sport/news12 , но жалко терять позиции в индексе поисковых систем (поскольку для них это будет новая статья).
- Еще один способ для борьбы с дублями страниц
Важно: если страница перемещена временно используйте 302 Moved Temporarily. Склейки страниц в этом случае не произойдет и страницу с редиректом можно будет всегда восстановить.
Permanent Redirect 301 для apache (.htaccess)Вставлять правила нужно сразу после строк:
RewriteEngine On RewriteBase / # чтобы обрезать полный путь, от корня сервера до корня сайта
сами правила задаются при помощи регулярных выражений, напомним синтаксис:
- Метасимволы, для задания групп символов или «меток» в шаблоне:
- ^ - метка начала строки,
- $ - метка конца строки,
- ! - отрицание,
- \ - экранирующий слеш, позволяет считать следующий за ним метасимвол обычным символом,
- . - точка, обозначает любой символ, но только один,
- () - группировка.
- Модификаторы, ставятся после обычных символов, метасимволов или их групп:
- ? - символ повторяется 0 или 1 раз,
- * - повторяется от 0 до 65536 раз,
- + - повторяется от 1 до 65536 раз.
- Флаги, определяют дополнительные опции для данного правила:
- NC - (nocase) отключает проверку регистра символов.
- R - (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY).
С данным флагом можно указать другой код результата, например R=301 возвратит редирект с кодом 301 (MOVED PERMANENTLY). Как вы понимаете, это то самое, что нам и надо. - L - (last) останавливает процесс преобразования, и текущая ссылка считается окончательной.
Рассмотри наиболее часто встречаемые ситуации:
RewriteCond %{HTTP_HOST} ^www\.(.*) RewriteRule ^(.*)$ http://%1/$1 RewriteCond обозначаем условие, при совпадении с которым будет выполнено правило RewriteRule. Редирект с index.php (html) на главную страницу RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1 Редирект при смене структуры сайта RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1 Permanent Redirect 301 на PHPЧтобы сообщить браузеру о том, что с запрошенной им страницы нужно произвести редирект на адрес http://site.ru выполните команды:
Header("HTTP/1.1 301 Moved Permanently"); header("Location: http://site.ru"); exit();
Permanent Redirect 301 для nginxПравила редиректа описывается в секции server.
Редирект с www.site.ru на site.ru server { listen 80; server_name www.site.ru; rewrite ^ http://site.ru$request_uri? permanent; }или общее правило для всех сайтов:
Server { server_name ~^(?! www\.); rewrite ^ http://www.$host$request_uri permanent; }
Редирект для с site.ru на www.site.ru server { listen 80; server_name site.ru; rewrite ^ http://www.site.ru$request_uri? permanent; } Редирект с index.php на главную страницу location = /index.php { if ($request_uri = /index.php) { rewrite ^ http://$host? permanent;#301 redirect } fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }UCP Anti-Cheat - бесплатная античитерская клиент-сервер программа для защиты сервера от недобросовестных игроков.
» Теперь данные с UCP сервера будут отправлятся на сайт в раздел "Монитор"
» Добавлен новый квар ucp_monitor
» HL1. Усовершенствована система защиты античита
» HL2. Улучшена поддержка последней версии CSS
» HL2. Поддержка мода Deathmatch
» HL2. Автоматическая замена binkw32.dll
Возможности:
» Защита от изменения и подмены игровых файлов
» Защита от внедрения и изменения процесса игры
» Защита от использования скриптовых читов
» Система банов по уникальному идентификатору ПК
» Полуавтоматическая установка клиентской части
» Поддержка steam и non-steam версии игр
» Возможность снятия снимков экрана у игроков
» Отладочный режим работы для быстрого выявления проблем
Поддерживаемые игры:
» Half-Life
» Condition Zero
» Counter-Strike 1.6
» Day of Defeat
» Adrenaline Gamer
» Team Fortress Classic
» Counter-Strike Source
» MU Online
» Ragnarok Online
Установка клиентской части:
1. Запустите инсталлятор, выберите понятный вам язык и нажмите "Далее"
2. Согласитесь с условиями лицензии и нажмите "Далее"
3. Нажмите "Обзор" и выберите файл hl.exe, затем нажмите "Открыть"
4. Выберите тип игры и не забудьте добавить ключ -steam
если у Вас steam версия игры либо патч 33 или выше (это билд 4156, чтобы узнать номер билда, достаточно написать в консоли игры команду version
)
Обзор Samsung Galaxy A7 (2017): не боится воды и экономии Стоит ли покупать samsung a7
Делаем бэкап прошивки на андроиде
Как настроить файл подкачки?
Установка режима совместимости в Windows
Резервное копирование и восстановление драйверов Windows