PomoRde.NET

Официальный сайт

Модификации DLE

Как сделать редирект 301 в DLE

18 декабрь, 2012 2
Когда-то у меня возникла проблема. Мне нужно было сделать редирект с одной страницы на другую. Но обычные способы не помогали именно в моем случае. Пришлось искать выход их положения.
Для начала я расскажу, как делать редирект 301 у движка DLE а потом расскажу о всяких способах, которые может быть вам пригодятся.

Реализация Редирект 301 для DLE


1. Открываем в корне сайта файл index.php
2. После <?php вписываем:

/* Редирект | начало */
$url_redirect = "";

switch ( $_SERVER['REQUEST_URI'] ) {

case "/stranica.html" : $url_redirect = "http://domen.ru/stranica2.html"; break;

}

if ( $url_redirect != "" ) { header( "HTTP/1.1 301 Moved Permanently" ); header( "Location: " . $url_redirect ); }
/* Редирект | конец */


В общем, и все! Вот вам и редирект 301 в DLE. Работает на всех версиях.

Способы реализации редирект 301 для других движков


1. Что бы сделать редирект 301 вам нужно в фале .htaccess который у вас в корне сайта (Если такого файла нету, вы должны его создать) добавить строчки:

Redirect 301 /staraya-ssilka.html http://domain.ru/new-ssilka.html

или

Redirect permanent /staraya-ssilka.html http://domain.ru/new-ssilka.html

Что в итоге одно и тоже, только написано по-разному. Проблема такого способа в том, что нужно перечислять все ссылки. Иногда это может быть очень утомительно и долго.

ЕСЛИ НЕ РАБОТАЕТ !
Может выдавать такую вот ошибочную ссылку:
Как сделать редирект 301 в DLE


Тогда попробуйте такой вариант


В файле .htaccess вставляем код

REWRITERULE ^flash/(.*)$ /new-flash/ [L,R=301]


Думаю и так все понятно.

2. Что бы перенаправить домен www. на не www. впишите вот этот код:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Или вот этот, он делает тоже самое, но тут более человечно написано

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]


3. Что бы перенаправлять ваш домен с domen.ru на www.domen.ru пропишите в файле .htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]


Так же есть альтернативный вариант:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]


Редирект с помощью скрипта (отправки заголовков)


Вот вам еще для раздумий такие штуки есть. Может быть, кому-то пригодится.

HTTP/1.1 301 Moved Permanently
Location: http://www.newdomain.ru/newdir/newpage.htm
PHP редирект
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newdomain.ru/newdir/newpage.htm”);
exit();
?>


ASP редирект

<%@ Language=VBScript %>
<% 
Response.Status=“301 Moved Permanently”
Response.AddHeader “Location”, “http://www.new-url.com”
response.end
%>


ASP.NET редирект


<script runat=“server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,“http://www.new-url.com”);
}
</script>


ColdFusion редирект

<.cfheader statuscode=“301” statustext=“Moved permanently”>
<.cfheader name=“Location” value=“http://www.new-url.com”>
JSP (Java) редирект
<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.new-url.com/” );
response.setHeader( “Connection”, “close” );
%>


CGI PERL

$q = new CGI;
print $q->redirect(“http://www.new-url.com/”); 
Ruby on Rails
def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.new-url.com/”
end
Прокомментировать
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Введите код с картинки:*
Кликните на изображение чтобы обновить код, если он неразборчив
Dima
13 июня 2015 22:16
Привет, у меня проблема сайт на DLE, я сделал как выше написали но у меня 301 редирект не работает.
Если зайти на www.plusing.ru и plusing.ru то открывается тот же самый домен. А нужно чтоб было без www. В чем может баг быть?
PomoRde
30 ноября 2015 16:43
Цитата: Dima
Привет, у меня проблема сайт на DLE, я сделал как выше написали но у меня 301 редирект не работает.
Если зайти на www.plusing.ru и plusing.ru то открывается тот же самый домен. А нужно чтоб было без www. В чем может баг быть?

смотря какой способ вы пробовали применить. все от сервера еще может зависеть. нужно смотреть пробовать.