HTTP ۳۰۱

کد وضعیت ۳۰۱ (به انگلیسی: HTTP 301) یکی از کدهای وضعیت پروتکل انتقال ابرمتن می‌باشد که با عنوان «برای همیشه منتقل شده» (به انگلیسی: Moved Permanently) شناخته می‌شود و برای تغییرمسیر نشانی وب کاربرد دارد. بدین معنی که پیوندهای کنونی یا رکوردها با استفاده از نشانی وبی که پاسخ دریافت کرده‌است باید به‌روز رسانی شود. استفاده از این کد به ویژه هنگامی سودمند است که به هر دلیل نشانی پیوند سایت دچار تغییراتی شده‌است و برای هدایت ربات‌ها یا کاربران به پیوند اصلی، از آن استفاده می‌شود.[1]

نمونه‌ها

درخواست کلاینت:

GET /index.php HTTP/1.1
Host: www.example.org

درخواست سرور:

HTTP/1.1 301 Moved Permanently
Location: http://www.example.org/index.asp

نمونه استفاده از فایل htaccess برای تغییرمسیر به یک اس‌اس‌ال پیوندخورده با دامنهٔ بدون www:

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

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(. *)$ [NC]
RewriteRule ^(. *)$ https://%1/$1 [R=301,L]

RewriteEngine On
RewriteCond %{SERVER_PORT} ۸۰
RewriteRule ^(. *)$ https://example.com/$1 [R,L]

نمونه‌ای از تغییرمسیر در پی‌اچ‌پی:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://example.com/newpage.html%22);
exit();
?>

معادل ساده برای پیکربندی انجین اکس:

location /old/url/ {
  return 301 /new/url;
}


در صورتی که از asp.net استففاده میکنید، می‌توانید از URL Rewrite استفاده کنید و اگر آن را روی سرور ندارید می‌توانید از کد زیر در صفحه خود استفاده کنید

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-location.com");
}
</script>


در صورتی که از asp.net استففاده میکنید و به سرور می‌توانید ریموت بزنید، از iis به صورت مستقیم بهره ببرید ...

IIS (on a Windows server):

1.In internet services manager, right click on the file or folder you wish to redirect.
2.Select "a redirection to a URL".
3.Enter the redirection page.
4.Check "The exact url entered above", and the "A permanent redirection for this resource".
5.Click "Apply".

در صورتی که از asp.net استففاده میکنید و می‌توانید ماژولی روی سرور نصب کنید، راهکار ساده تری برای شما استفاده از URL Rewrite module for IIS 7 است . شما می‌توانید با سرچ همین کلمه در گوگل آن را دانلود کنید و به سادگی روی سرور ویندوز نصب نمایید

Canonical Redirect using IIS 7.0 web.config file:

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^domain.com$" />
</conditions>
<action type="Redirect" url="http://www.domain.com/{R:0}"
 redirectType="Permanent" />
</rule>
</rules>
</rewrite>
  </system.webServer>
</configuration>


جستارهای وابسته

منابع

  1. مشارکت‌کنندگان ویکی‌پدیا. «HTTP 301». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۱۵ بهمن ۱۳۹۳.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.