ساخت کد ریدایرکت ۳۰۱ برای htaccess، Nginx و وردپرس

کاربرد ابزار: لیست آدرس‌های قدیم و جدید را (حتی مستقیم از اکسل) بچسبانید و کد آماده‌ی ریدایرکت ۳۰۱ برای .htaccess، Nginx یا افزونه‌ی Redirection بگیرید. آدرس‌های فارسی، پارامترها، انتقال کل دامنه و تشخیص خودکار زنجیره و حلقه‌ی ریدایرکت را هم پشتیبانی می‌کند.

ریدایرکت ۳۰۱ چیست و کی لازم است؟

ریدایرکت ۳۰۱ به مرورگر و گوگل می‌گوید یک صفحه برای همیشه به آدرس جدیدی منتقل شده است. گوگل اعتبار و بک‌لینک‌های آدرس قدیم را به آدرس جدید منتقل می‌کند و به مرور آدرس جدید را جایگزین قبلی در نتایج می‌کند. این موقعیت‌ها ریدایرکت لازم دارند:

  • تغییر نامک (Slug) یا ساختار آدرس صفحه‌ها.
  • ادغام چند مقاله‌ی کم‌ارزش یا تکراری در یک مقاله‌ی کامل.
  • حذف محصول یا صفحه‌ای که جایگزین مشابه دارد.
  • تغییر دامنه، یا انتقال از http به https و از www به بدون www.

برای تغییر موقت (مثلا صفحه‌ای که چند روز در دست تعمیر است) از ریدایرکت ۳۰۲ استفاده کنید و اگر صفحه‌ای حذف شده و جایگزینی ندارد، به جای ریدایرکت کد ۴۱۰ برگردانید.

راهنمای استفاده از ابزار

  1. در کادر آدرس‌ها، در هر خط آدرس قدیم و آدرس جدید را بنویسید. می‌توانید دو ستون را مستقیم از اکسل یا گوگل شیت کپی کنید؛ ابزار Tab، ویرگول و فاصله را تشخیص می‌دهد.
  2. آدرس‌ها می‌توانند کامل (با https و دامنه) یا فقط مسیر باشند. آدرس‌های فارسی را هم به هر دو شکل خوانا یا کدشده (%D8…) بدهید؛ ابزار خودش تبدیلشان می‌کند.
  3. نوع خروجی را انتخاب کنید و کد را کپی یا دانلود کنید.
  4. به هشدارها توجه کنید: آدرس تکراری، حلقه‌ی ریدایرکت و زنجیره‌ی ریدایرکت را ابزار خودکار پیدا می‌کند.

برای انتقال کل سایت به دامنه‌ی جدید، از زبانه‌ی «انتقال کل دامنه» استفاده کنید.

کدام خروجی را انتخاب کنم؟

خروجیمناسب براینکته
RewriteRuleبیشتر هاست‌های لینوکسی (Apache و LiteSpeed)پارامترهای بعد از ؟ را هم پشتیبانی می‌کند
RedirectMatchهاست‌هایی که mod_rewrite ندارندفقط مسیر را مقایسه می‌کند، نه پارامترها
Nginxسرورهای مجازی با Nginxداخل بلوک server قرار می‌گیرد
CSVوردپرس با افزونه‌ی Redirectionبدون دست زدن به فایل‌های سرور

ابزار برای Apache عمدا از Redirect ساده استفاده نمی‌کند؛ چون آن دستور بر اساس شروع آدرس کار می‌کند و مثلا ریدایرکت /blog همه‌ی مقاله‌های زیر /blog/ را هم جابه‌جا می‌کند. RewriteRule و RedirectMatch فقط همان آدرس دقیق را ریدایرکت می‌کنند.

کد را کجای فایل .htaccess بگذاریم؟

  1. اول از فایل .htaccess فعلی نسخه‌ی پشتیبان بگیرید؛ یک خطای کوچک می‌تواند کل سایت را با خطای ۵۰۰ از دسترس خارج کند.
  2. فایل را از مدیریت فایل هاست (پوشه‌ی public_html) یا از ویرایشگر فایل یوست باز کنید.
  3. کد ریدایرکت‌ها را قبل از بلوک # BEGIN WordPress قرار دهید؛ وگرنه وردپرس درخواست را زودتر می‌گیرد و ریدایرکت اجرا نمی‌شود.
  4. ذخیره کنید و چند آدرس قدیم را در یک پنجره‌ی ناشناس باز کنید تا مطمئن شوید با کد ۳۰۱ به آدرس درست می‌روند.

اگر تعداد ریدایرکت‌ها خیلی زیاد است (چند صد یا چند هزار)، روش ساخت گروهی با اکسل را در ریدایرکت ۳۰۱ دسته‌جمعی با اکسل توضیح داده‌ام. برای یکسان کردن نسخه‌ی www و بدون www هم این آموزش را ببینید.

ریدایرکت آدرس‌های فارسی

آپاچی آدرس را بعد از رمزگشایی با قانون مقایسه می‌کند. یعنی اگر آدرس فارسی را به شکل کدشده (مثل %D8%B3%D8%A6%D9%88) در .htaccess بنویسید، ریدایرکت کار نمی‌کند. این ابزار آدرس‌های کدشده را خودکار به حروف فارسی تبدیل می‌کند تا قانون درست اجرا شود. فقط فایل .htaccess را حتما با انکودینگ UTF-8 ذخیره کنید.

اشتباهات رایج در ریدایرکت

  • زنجیره‌ی ریدایرکت: A به B و B به C. هر مرحله زمان بارگذاری و احتمال گم شدن اعتبار را بیشتر می‌کند. همیشه مستقیم به مقصد نهایی ریدایرکت کنید.
  • حلقه‌ی ریدایرکت: آدرسی که در نهایت به خودش برمی‌گردد و صفحه هرگز باز نمی‌شود.
  • ریدایرکت همه‌چیز به صفحه‌ی اصلی: گوگل این کار را معمولا Soft 404 حساب می‌کند و اعتباری منتقل نمی‌شود. هر صفحه را به مرتبط‌ترین صفحه‌ی جدید ریدایرکت کنید.
  • استفاده از ۳۰۲ برای تغییر دائمی.
  • فراموش کردن لینک‌های داخلی: بعد از ریدایرکت، لینک‌های داخلی سایت را هم به آدرس جدید اصلاح کنید تا کاربر و گوگل از مسیر ریدایرکت عبور نکنند.
  • برداشتن زود ریدایرکت‌ها: ریدایرکت‌های انتقال دامنه یا تغییر ساختار را حداقل یک سال، و بهتر است برای همیشه، نگه دارید.

سوالات متداول

ریدایرکت ۳۰۱ چقدر از اعتبار صفحه را منتقل می‌کند؟

گوگل اعلام کرده ریدایرکت‌های ۳۰۱ و ۳۰۲ اعتبار را بدون کاهش منتقل می‌کنند، به شرطی که صفحه‌ی مقصد واقعا جایگزین مرتبط صفحه‌ی قبلی باشد.

بعد از انتقال دامنه چه کار دیگری لازم است؟

دامنه‌ی جدید را در سرچ کنسول اضافه کنید، در پراپرتی دامنه‌ی قدیم از ابزار Change of Address استفاده کنید، نقشه سایت جدید را ثبت کنید و از سایت‌هایی که به شما لینک داده‌اند بخواهید لینکشان را اصلاح کنند.

ریدایرکت در افزونه بهتر است یا در .htaccess؟

ریدایرکت در .htaccess سریع‌تر است چون قبل از اجرای وردپرس انجام می‌شود. افزونه مدیریت راحت‌تر و گزارش ۴۰۴ دارد. برای چند ده ریدایرکت هر دو مناسب‌اند؛ برای تعداد زیاد، .htaccess یا تنظیمات سرور بهتر است.

اطلاعاتی که وارد می‌کنم جایی ذخیره می‌شود؟

نه. همه‌ی پردازش داخل مرورگر خودتان انجام می‌شود.

ابزارهای رایگان دیگر را در صفحه‌ی ابزارها ببینید.