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

اگر لینک به این موارد در متن دیتابیس یا سایت های دیگر باشد به راحتی قابل اصلاح نیست. اما این جا یک روشی معرفی میکنیم که به راحتی تمامی لینک های شکسته شده به سبب این انتقال یا تغییر نام درست کار کند.

دستور کلی به این شکل است:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^folder-a(.*)$ http://www.yoursite.com/folder-b$1 [L,R=301]

</IfModule>

 

به طور مثال در سیستم مدیریت محتوای دروپال فایل ها به صورت پیش فرض در پوشه ای با مسیر sites/default/files ذخیره می شود. فرض کنید من برای کم شدن طول لینک، این پوشه را به ریشه سایت منتقل می کنم و مسیر به شکل mysite.com/files در می آید. در تنظیمات دروپال جایی هست که مسیر پیش فرض فایل ها را تعیین میکنم. اما مشکل لینک های قبلی که توسط خودم یا دیگران به مسیر قبلی داده شده چیست. با همین دستور به شکل زیر این مشکل را حل می کنم:

RewriteEngine on
RewriteBase /
RewriteRule ^sites/default/files/(.*)$ /files/$1 [R=301,L]

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

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

شما 3 امتیاز داده اید. تعداد امتیازدهندگان: 820
مسیر کوتاه: rangine.ir/node/1343