کد ریدایرکت گروهی و الگویی ۳۰۱ با عبارت باقاعده (Regex) در htaccess
با RewriteRule و پترنهای رگولار اکسپرشن میتوانید صدها یا هزاران صفحه را تنها با یک قانون تمیز و بدون فشار به سرور ریدایرکت کنید.
مشخصات فنی و شناسنامه کد (Code Information)
بازبینی: 1405/06/29<IfModule mod_rewrite.c>
RewriteEngine On
# انتقال تمام مقالات از ساختار قدیمی سال/ماه/نام به ساختار جدید
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$ https://example.com/blog/$3 [R=301,L]
</IfModule>
کد را کجا قرار دهیم؟ (Placement Guide)
بالای بلوک پیشفرض وردپرس در فایل .htaccess.
این کد چگونه کار میکند؟ (How it Works)
پترن ([0-9]{4}) سال، پترن دوم ماه و (.*) نامک مقاله را دریافت و به عنوان متغیر ۳$ در آدرس مقصد جایگذاری میکند.
چه زمانی از این کد استفاده کنیم؟ (Use Cases)
هنگام ریدیزاین سایت و کوتاه کردن ساختار پیوندهای یکتای صدها مقاله.
چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)
برای ریدایرکتهای انفرادی و تکی که ساختار مشخصی ندارند.
پیشنیازهای اجرا
ماژول mod_rewrite در آپاچی.
نحوه تست و اطمینان از عملکرد
آدرس یکی از مقالات سالهای گذشته را باز کنید و مقصد نهایی را چک کنید.
نحوه بازگردانی سریع (Rollback)
حذف یا کامنت کردن خط RewriteRule با قرار دادن # در ابتدای آن.
خطاهای رایج و راهحل رفع
خطای تداخل رگولار اکسپرشن و هدایت ناخواسته فایلهای CSS یا تصاویر.
ملاحظات و نکات امنیتی
استفاده از ^ و $ برای تعیین شروع و پایان تطبیق جهت جلوگیری از تزریق رشتههای مخرب.
تاثیر بر سرعت و پرفورمنس
جایگزین فوقالعاده سبکتر برای نصب افزونههای سنگین ریدایرکت.