HTTP ۳۰۱
کد وضعیت ۳۰۱ (به انگلیسی: HTTP 301) یکی از کدهای وضعیت پروتکل انتقال ابرمتن میباشد که با عنوان «برای همیشه منتقل شده» (به انگلیسی: Moved Permanently) شناخته میشود و برای تغییرمسیر نشانی وب کاربرد دارد. بدین معنی که پیوندهای کنونی یا رکوردها با استفاده از نشانی وبی که پاسخ دریافت کردهاست باید بهروز رسانی شود. استفاده از این کد به ویژه هنگامی سودمند است که به هر دلیل نشانی پیوند سایت دچار تغییراتی شدهاست و برای هدایت رباتها یا کاربران به پیوند اصلی، از آن استفاده میشود.[1]
HTTP |
---|
روشهای درخواست |
زمینههای سرآیند |
|
کدهای وضعیت |
|
نمونهها
درخواست کلاینت:
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>
جستارهای وابسته
- پروتکل انتقال ابرمتن
- مرورگر وب
- سرور وب
- HTTP ۳۰۲
- HTTP ۳۰۳
- HTTP ۳۰۷
منابع
- مشارکتکنندگان ویکیپدیا. «HTTP 301». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۵ بهمن ۱۳۹۳.