ریدایرکت چیست؟

[vc_row][vc_column][vc_column_text]تغییر مسیرها در HTTP

تغییر مسیر URL، همچنین به عنوان ارسال URL شناخته می شود،  طراحی سایت اصفهان تکنیکی برای دادن بیش از یک آدرس URL به یک صفحه، یک فرم، یا کل وب سایت/برنامه است. HTTP نوع خاصی از پاسخ، به نام تغییر مسیر HTTP، برای این عملیات دارد.

 

تغییر مسیرها اهداف متعددی را محقق می کنند:

 

تغییر مسیرهای موقت در طول تعمیر و نگهداری سایت یا خرابی

تغییر مسیرهای دائمی برای حفظ پیوندها/بوکمارک های موجود پس از تغییر URL های سایت، صفحات پیشرفت هنگام آپلود فایل و غیره.

اصل

در HTTP، تغییر مسیر توسط سروری که یک پاسخ ریدایرکت ویژه به یک درخواست ارسال می کند، راه اندازی می شود. پاسخ‌های تغییر مسیر دارای کدهای وضعیت هستند که با 3 شروع می‌شوند و یک سرصفحه موقعیت مکانی که URL را برای تغییر مسیر به آن نگه می‌دارد.

 

وقتی مرورگرها یک تغییر مسیر دریافت می کنند، بلافاصله URL جدید ارائه شده در هدر موقعیت مکانی را بارگیری می کنند. علاوه بر عملکرد کوچک یک سفر رفت و برگشت اضافی، کاربران به ندرت متوجه تغییر مسیر می شوند.

 

 

چندین نوع تغییر مسیر وجود دارد که به سه دسته طبقه بندی شده اند:

 

تغییر مسیرهای دائمی

تغییر مسیرهای موقت

تغییر مسیرهای ویژه

تغییر مسیرهای دائمی

این تغییر مسیرها قرار است برای همیشه باقی بمانند. آنها نشان می دهند که URL اصلی دیگر نباید استفاده شود و با آدرس جدید جایگزین شود. روبات‌های موتور جستجو، RSS خوان‌ها و سایر خزنده‌ها URL اصلی منبع را به‌روزرسانی می‌کنند.

 

مدیریت روش متن کد مورد استفاده معمولی

301 انتقال دائمی روش دریافت بدون تغییر. سایر موارد ممکن است به GET تغییر یابند یا خیر. [1] سازماندهی مجدد یک وب سایت.

308 تغییر مسیر دائمی روش و بدنه تغییر نکرده است. سازماندهی مجدد یک وب سایت، با پیوندها/عملیات غیر GET.

[1] مشخصات قصد اجازه دادن به تغییر روش را نداشت، اما عوامل کاربری موجودی وجود دارند که روش خود را تغییر می‌دهند. 308 برای رفع ابهام رفتار هنگام استفاده از روش‌های غیر GET ایجاد شد.[/vc_column_text][us_separator][vc_column_text]تغییر مسیرهای موقت

گاهی اوقات منبع درخواستی از محل متعارف آن قابل دسترسی نیست،  سئو سایت اصفهان اما از مکان دیگری قابل دسترسی است. در این حالت می توان از تغییر مسیر موقت استفاده کرد.

 

روبات های موتورهای جستجو و سایر خزنده ها URL جدید و موقت را حفظ نمی کنند. تغییر مسیرهای موقت همچنین هنگام ایجاد، به روز رسانی یا حذف منابع برای نمایش صفحات پیشرفت موقت استفاده می شود.

 

مدیریت روش متن کد مورد استفاده معمولی

302 روش های GET بدون تغییر یافت شد. سایر موارد ممکن است به GET تغییر یابند یا خیر. [2] صفحه وب به دلایل غیرقابل پیش‌بینی موقتاً در دسترس نیست.

303 روش های دیگر GET بدون تغییر را ببینید. دیگران به GET (جسم گم شده) تغییر کردند. برای تغییر مسیر بعد از یک PUT یا یک POST استفاده می شود، به طوری که بازخوانی صفحه نتیجه باعث شروع مجدد عملیات نمی شود.

307 تغییر مسیر موقت روش و بدنه تغییر نکرده است صفحه وب به دلایل پیش بینی نشده به طور موقت در دسترس نیست. زمانی که عملیات غیر GET در سایت موجود باشد بهتر از 302 است.

مشخصات قصد اجازه دادن به تغییر روش را نداشت، اما عوامل کاربری موجود هستند که روش خود را تغییر می‌دهند. 307 برای رفع ابهام رفتار هنگام استفاده از روش‌های غیر GET ایجاد شده است.

 

تغییر مسیرهای ویژه

304 (تغییر نشده) یک صفحه را به کپی ذخیره شده محلی (که قدیمی بود) هدایت می کند و 300 (چند انتخابی) یک تغییر مسیر دستی است: بدنه که توسط مرورگر به عنوان یک صفحه وب ارائه می شود، تغییر مسیرهای ممکن را لیست می کند و کاربر کلیک می کند. روی یکی برای انتخاب آن

 

304 اصلاح نشده برای درخواست‌های مشروط تأیید شده ارسال شد. نشان می دهد که پاسخ ذخیره شده در حافظه پنهان هنوز تازه است و می توان از آن استفاده کرد.

 

ویژگی محتوا باید با عددی شروع شود که نشان می‌دهد مرورگر چند ثانیه قبل از هدایت به URL داده شده باید منتظر بماند. برای مطابقت با دسترسی، همیشه آن را روی 0 تنظیم کنید.

 

بدیهی است که این روش فقط با HTML کار می کند و نمی توان از آن برای تصاویر یا سایر انواع محتوا استفاده کرد.

 

 

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

 

ترتیب اولویت

با سه روش برای راه اندازی تغییر مسیرها، می توان از چندین راه به طور همزمان استفاده کرد. ولیکدام اول اعمال می شود؟[/vc_column_text][us_separator][vc_column_text]تغییر مسیرهای HTTP همیشه ابتدا اجرا می شوند – زمانی که حتی یک صفحه ارسالی وجود ندارد، وجود دارند.

تغییر مسیرهای HTML (<meta>) در صورتی اجرا می شوند که هیچ تغییر مسیر HTTP وجود نداشته باشد.

تغییر مسیرهای جاوا اسکریپت آخرین بار و تنها در صورتی اجرا می شوند که جاوا اسکریپت فعال باشد.

در صورت امکان، از تغییر مسیرهای HTTP استفاده کنید و تغییر مسیرهای عنصر <meta> را اضافه نکنید. اگر شخصی تغییر مسیرهای HTTP را تغییر دهد اما تغییر مسیرهای HTML را فراموش کند، تغییر مسیرها دیگر یکسان نخواهند بود، که می تواند باعث ایجاد یک حلقه بی نهایت یا کابوس های دیگر شود.

 

موارد استفاده کنید

موارد استفاده متعددی برای تغییر مسیرها وجود دارد، اما از آنجایی که عملکرد با هر تغییر مسیر تحت تأثیر قرار می گیرد، استفاده از آنها باید به حداقل برسد.

 

نام مستعار دامنه

در حالت ایده آل، یک مکان و در نتیجه یک URL برای هر منبع وجود دارد. اما دلایلی برای نام های جایگزین برای یک منبع وجود دارد:

 

گسترش دامنه دسترسی به سایت شما

یک مورد رایج زمانی است که یک سایت در www.example.com قرار دارد، اما دسترسی به آن از example.com نیز باید کارساز باشد. بنابراین، تغییر مسیرها برای example.com به www.example.com تنظیم می شوند. همچنین ممکن است از مترادف های رایج یا اشتباهات تایپی مکرر دامنه های خود تغییر مسیر دهید.

 

انتقال به دامنه جدید

به عنوان مثال، شرکت شما تغییر نام داده است، اما شما می خواهید پیوندها یا نشانک های موجود همچنان شما را با نام جدید پیدا کنند.

 

اجبار HTTPS

درخواست ها به نسخه http:// سایت شما به نسخه https:// سایت شما هدایت می شوند.

 

زنده نگه داشتن پیوندها

هنگامی که وب سایت ها را بازسازی می کنید، URL ها تغییر می کنند. حتی اگر لینک های سایت خود را برای مطابقت با URL های جدید به روز کنید، هیچ کنترلی بر URL های استفاده شده توسط منابع خارجی ندارید.

 

شما نمی‌خواهید این پیوندها را بشکنید، زیرا کاربران ارزشمندی را به همراه می‌آورند و به سئوی شما کمک می‌کنند، بنابراین از URLهای قدیمی به آدرس‌های جدید تغییر مسیر می‌دهید.[/vc_column_text][us_separator][vc_column_text]توجه: این تکنیک برای پیوندهای داخلی کار می کند، اما سعی کنید از تغییر مسیر داخلی خودداری کنید. تغییر مسیر هزینه عملکرد قابل توجهی دارد (به عنوان یک درخواست HTTP اضافی رخ می دهد). اگر می توانید با تصحیح پیوندهای داخلی از آن جلوگیری کنید، باید به جای آن پیوندها را اصلاح کنید.

 

پاسخ های موقت به درخواست های ناامن

درخواست‌های ناامن وضعیت سرور را تغییر می‌دهند و کاربر نباید آنها را ناخواسته دوباره ارسال کند.

 

به طور معمول، شما نمی خواهید کاربران شما درخواست های PUT، POST یا DELETE را دوباره ارسال کنند. اگر پاسخ را به عنوان نتیجه این درخواست ارائه دهید، با فشار ساده دکمه بارگذاری مجدد درخواست مجددا ارسال می شود (احتمالاً پس از یک پیام تأیید).

 

در این مورد، سرور می‌تواند یک پاسخ 303 (به سایرین مراجعه کنید) برای URL که حاوی اطلاعات مناسب است، ارسال کند. اگر دکمه بارگذاری مجدد فشار داده شود، فقط آن صفحه مجدداً نمایش داده می شود، بدون اینکه درخواست های ناامن دوباره پخش شود.

 

پاسخ های موقت به درخواست های طولانی

برخی از درخواست‌ها ممکن است به زمان بیشتری روی سرور نیاز داشته باشند، مانند DELETE درخواست‌هایی که برای پردازش بعدی برنامه‌ریزی شده‌اند. در این مورد، پاسخ یک تغییر مسیر 303 (به سایرین مراجعه کنید) است که به صفحه ای پیوند می دهد که نشان می دهد عمل برنامه ریزی شده است و در نهایت پیشرفت آن را اطلاع می دهد یا اجازه لغو آن را می دهد.

 

پیکربندی تغییر مسیرها در سرورهای رایج

آپاچی

تغییر مسیرها را می توان در فایل پیکربندی سرور یا در htaccess. هر دایرکتوری تنظیم کرد.

 

ماژول mod_alias دارای دستورالعمل های Redirect و RedirectMatch است که به طور پیش فرض 302 تغییر مسیر را تنظیم می کند:

 

RedirectMatch هم همین کار را می کند، اما یک عبارت معمولی برای تعریف مجموعه ای از URL های تحت تاثیر قرار می گیرد:

 

تمام اسناد موجود در فهرست تصاویر/دایرکتوری به دامنه دیگری هدایت می شوند.

 

اگر یک تغییر مسیر موقت نمی‌خواهید، می‌توانید از یک پارامتر اضافی (اعم از کد وضعیت HTTP برای استفاده یا کلمه کلیدی دائمی) برای تنظیم یک تغییر مسیر متفاوت استفاده کنید:

ماژول  همچنین می تواند تغییر مسیر ایجاد کند. انعطاف پذیرتر است، اما کمی پیچیده تر است.[/vc_column_text][us_separator][vc_column_text]

حلقه های تغییر مسیر

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

 

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

 

 

فایرفاکس تشخیص داده است که سرور درخواست این آدرس را به گونه ای هدایت می کند که هرگز خاتمه نمی یابد.

 

… در حالی که کروم نمایش می دهد:

 

این صفحه وب دارای یک حلقه تغییر مسیر است

 

در هر دو مورد، کاربر نمی تواند کار زیادی انجام دهد (مگر اینکه فساد در سمت او اتفاق بیفتد، مانند عدم تطابق حافظه پنهان یا کوکی ها).

 

مهم است که از حلقه های تغییر مسیر اجتناب کنید، زیرا آنها به طور کامل تجربه کاربر را از بین می برند.[/vc_column_text][/vc_column][/vc_row]

0