روش های Redirect صفحات وب

در اين بخش مي‌توانيد در مورد تمامي مسائل و موضوعات مرتبط با طراحي صفحات اينترنتي به بحث بپردازيد

مدیران انجمن: Mahdi Mahdavi, شوراي نظارت

New Member
پست: 1
تاریخ عضویت: شنبه 9 شهریور 1392, 1:18 am
سپاس‌های ارسالی: 1 بار
سپاس‌های دریافتی: 4 بار

Re: روش های Redirect صفحات وب

پست توسط poorya99 » شنبه 9 شهریور 1392, 1:26 am

M.Abooali نوشته شده:  بازگرداندن یا همان Redirect کردن کاربران از یک آدرس اینترنتی به آدرس دیگر روش های متعددی وجود دارد که به 2 حالت کلی تقسیم می شوند.

در حالت نخست که در سمت کاربر همه چیز اتفاق خواهد افتاد، کاربر به صفحه ای که آدرسش را جستجو کرده وارد خواهد شد و در متن اون صفحه کدهایی مورد استفاده قرار گرفته است که مرورگر کاربر پس از خواندن صفحه کاربر را به صفحه دیگری بازگشت میدهد. در این شیوه کاربر ابتدا صفحه اول را باز خواهد کرد، همچنین اگر یک خزنده (bot) در حال پویش صفحات باشد، دو صفحه متفاوت را فهرست خواهد کرد و هر آدرس را به صحفه ای مختص خواهد کرد.

همچنین در این شیوه چون بیشتر در ارائه تبلیغات عرضه می شود ممکن است از عمل رفرش شدن صفحه توسط بلاکر های مرورگر پیشگیری به عمل آید.

از ساده ترین کدها برای این شیوه بازگردانی کاربر:

HTML:

میتوانید با کمک متا تگ زیر به شکل زمان دار یا فوری کاربر را به صفحه ای بازگشت دهید:

کد: انتخاب همه

<META HTTP-EQUIV="refresh" CONTENT="seconds;URL=the-other-url">



JavaScript:

در جاوا اسکریپت نیز به عنوان یک زبان برنامه نویسی در سمت کاربر امکان بازگشت دادن کاربر به یک صفحه دیگر به صورت خودکار یا وابسته به یک اتفاق وجود دارد:


کد: انتخاب همه

<script type="text/javascript">
<!--window.location = "http://www.google.com/"//-->
</script>



اما حالت دوم بازگشت دادن کاربر را پیش از آن که صفحه نخست توسط مرورگر کامل خوانده شود کاربر را به آدرس مورد نظر بازگشت خواهد داد. به عبارت بهتر در سمت سرور است که Redirection اتفاق خواهد افتاد. به همین دلیل در این شیوه خزنده ها (bots) هم متوجه تغییر مسیر نخواهند شد و محتوا هر دو صحفه را با یک آدرس ذخیره می نمایند. حتی پیج رنک و رتبه الکسا نیز در صفحات به یکدیگر منتقل خواهد شد. از همین رو این شیوه متداولی است برای زمانی که آدرس یک سایت تغییر می کند تا کاربران به آدرس جدید هدایت شوند. این شیوه اصطلاحاً Redirection 301 نام دارد که در زبان های مختلف برنامه نویسی برای اون روش های موجود است.


ColdFusion Redirect:

کد: انتخاب همه

<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.new-url.com">



PHP Redirect:

کد: انتخاب همه

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.new-url.com" );
?>



ASP Redirect:

کد: انتخاب همه

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



ASP .NET Redirect:

کد: انتخاب همه

<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>



JSP (Java) Redirect:

کد: انتخاب همه

<%
response.setStatus(301);
response.setHeader( "Location", "http://www.new-url.com/" );
response.setHeader( "Connection", "close" );
%>



CGI PERL Redirect:

کد: انتخاب همه

$q = new CGI;
print $q->redirect("http://www.new-url.com/");



Ruby on Rails Redirect:

کد: انتخاب همه

def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.new-url.com/"
end


همچنین به کمک فایل دسترسی htaccess:

کد: انتخاب همه

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]


با توجه به اینکه HTML و JavaScript در سمت کاربر این قابلیت را دارند و در سمت سرور نمی توانند واکنشی داشته باشند، کدی برای بازگشت به شکل 301 برای این زبان ها وجود ندارد. 


بابت تاخیر در جواب نیز معذرت می خوام، سربازی و ....


سلام داداش
اینجا عضو شدم فقط از شما تشکر مخصوص کنم واقعا دمت گرم کلی گشتم همه کدهاشون مشکل دار بود خیلی کارمو راه انداخت پستت زندگیت مفید سراسر شادی
موفق باشی:)
ایشاالله بازم به این فروم میام.

New Member
پست: 1
تاریخ عضویت: سه شنبه 6 بهمن 1394, 10:02 am
سپاس‌های دریافتی: 1 بار

Re: روش های Redirect صفحات وب

پست توسط rahpoo » سه شنبه 6 بهمن 1394, 10:25 am

با سلام و درود
مطالب بسیار مفید بود فقط کاش یک توضیحی هم میدادید که کدهارو دقیقا کجا باید کپی کرد تا بخوبی کار بده.
و اما سوال اصلی ینده اینه که یکسری از سایتها هستند که از ریدایرکت 301 استفاده میکنند و جالبه که دامنه اصلی که وقتی سورسش رو از [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] میگیرم سورسش این میشه:

کد: انتخاب همه

<!DOCTYPE html>
<html style="height:100%">
<head><title> 301 Moved Permanently
</title></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; ">   <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
      <h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">301</h1>
<h2 style="margin-top:20px;font-size: 30px;">Moved Permanently
</h2>
<p>The document has been permanently moved.</p>
</div></div><div style="color:#f0f0f0; font-size:12px;margin:auto;padding:0px 30px 0px 30px;position:relative;clear:both;height:100px;margin-top:-101px;background-color:#474747;border-top: 1px solid rgba(0,0,0,0.15);box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset;">
<br>Proudly powered by  <a style="color:#fff;" href="http://www.litespeedtech.com/error-page">LiteSpeed Web Server</a><p>Please be advised that LiteSpeed Technologies Inc. is not a web hosting company and, as such, has no control over content found on this site.</p></div></body></html>

و به محض کلیک بر روی دامنه اصلی در جستجوی گوگل به دامنه فرعی هدایت میشه یعنی دامنه اصلی همیشه ثابته و بخوبی در گوگل ایندکس شده و به دلایلی مثل پیلتر شدن هر چند وقت یکبار آدرس دامنه فرعی تغییر میکنه بدون اینکه کوچکترین افت رنکی برای دامنه اصلی پیش بیاد لطفا اگر کسی هست که اطلاعاتی از این موضوع داره دریغ نکنه واقعا احتیاج دارم.
با تشکر از سایت بسیار خوبتون

ارسال پست

بازگشت به “طراحي صفحات اينترنتي”