سئو برای زندگی

logo joomla

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

پس آیا راهی برای حذف شناسه مطلب از URl در هنگام استفاده از ابزار SEF خود جوملا وجود دارد؟ به نوعی میتوان گفت بله اما لازمه آن یک اصلاح ساده در فایل هسته ای جوملا است، به این صورت که هر به روز رسانی در وب سایت جوملای شما ممکن است ساختار لینک شما را خراب کند یا نکند. اگر از این مسئله خوشتان نمی آید، پیشنهاد میکنیم ادامه این مطلب را نخوانید (یا میتوانید ادامه مطلب را بخوانید، شاید غافلگیری برایتان داشته باشیم). اگر با تغییر فایل هسته ای سایت جوملایتان مشکلی ندارید، در اینجا با نحوه کار آشنا شوید:

- فایل router.php را که زیر فولدر /components/com_content/ واقع شده است، باز کنید.
- خط زیر را جستجو کنید (جوملا 3.3.x):

$advanced = $params->get('sef_advanced_link', 0);

و آن را به صورت زیر تغییر دهید:

$advanced = $params->get('sef_advanced_link', 1);

توجه داشته باشید که خط بالا دو بار وجود دارد و شما باید آن را در هر دو مورد تغییر دهید در غیر این صورت لینکهای شما دیگر کار نخواهند کرد (این لینکها کار نخواهند کرد چون عملکردهای build و parse در فایل router.php دیگر با یکدیگر سازگار نیستند.)
- فایل را ذخیره کرده و آن را آپلود کنید.
- تبریک میگوییم: لینکهای شما دیگر حاوی شناسه مطلب نیستند.
همان طور که در بالا میبینید، اصلاح router.php کاملا اساسی است. نه تنها این، بلکه به نظر میرسد افزونه com_content پیش از این گزینه ای دارد (sef_advanced_link) که به صورت خودکار شناسه مقاله را از URL، حذف میکند. متاسفانه این گزینه در هیچ جایی در واسط جوملا وجود ندارد (تنها در router.php بازیابی شده بود اما هیچ راهی وجود ندارد که در پیکر بندی (کانفیگوریشن) افزونه com_content قرار داده شود) اما تصور میکنیم که در مرحله بعدی، افزوده خواهد شد.

با این شرایط، آیا واقعا هیچ راه دیگری به جز تغییر یک فایل هسته ای، وجود ندارد؟ اگر ماجراجو هستید، میتوانید به صورت دستی تنظیمات (ستینگ) افزونه com_content را در پایگاه داده ها به روز رسانی کنید و به صورتی دستی یک پارامتر sef_advanced_link ایجاد کنید و آن را در 1. تنظیم کنید. به این صورت: - وارد phpMyAdmin شوید.
- پایگاه داده هایی را که قدرت وب سایت جوملای شما به آن است، انتخاب کنید.
- روی جدول  #__extensions کلیک کنید.  
- ردیفی را پیدا کنید که نام آن com_content باشد و آن را در حالت ویرایش (ادیت) باز کنید.
- خط زیر را به فیلد params  اضافه کنید (درست زیر علامت آکولاد بسته)
,"sef_advanced_link":"1"
توجه داشته باشید که کاما در کد بالا اشتباه تایپی نیست، باید آن را اضافه کنید وگرنه وب سایتتان درست کار نمیکند.
- این ردیف را ذخیره کنید.
- وب سایت خود را چک کنید (پس از پاک کردن کش جوملا)، متوجه میشوید که شناسه های مطالب ناپدید شده اند.
هر دو روش ایده آل نیستند چون در روش اول لینکها در صورتی که فایل router.php به روز رسانی شود دیگر کار نمیکنند و در روش دوم، لینکها در صورتی که تنظیمات افزونه com_content را از طریق بک اند به روز رسانی کنید، لینکها دیگر کار نمیکنند (تغییرات هارد کد پایگاه داده های شما از بین میرود). حالا سوال این است که اصلا چرا جوملا شناسه مطلب را به URL اضافه میکند؟ پاسخ این است: چون اگر دو مطلب متفاوت یک نام مستعار داشته باشند، با افزودن شناسه مطلب به URL، از این که دو لینک متفاوت هستند، اطمینان حاصل میشود. البته ما فکر نمیکنیم این بهانه خوبی برای الزام این گزینه در وب سایت جوملا باشد چون جوملا به صورت خودکار نام مستعار متفاوتی برای مطلب دوم که دقیقا همان عنوان مطلب اول را دارد، ایجاد میکند (معمولا 2- به انتهای آن اضافه میکند). در این مطلب ما دو روش حذف شناسه مطلب از لینک را به شما نشان دادیم که یکی با تغییر یک فایل و دومی با تغییر یک ردیف در پایگاه داده ها انجام میشود. همان طور که پیش تر گفتیم، هیچ یک از این دو گزینه بی اشکال نیستند. اگر مطمئن نیستید کدام گزینه را استفاده کنید، یا اگر احساس میکنید این اقدامات، کار شما نیست، میتوانید با ما تماس بگیرید.

3.6666666666667 1 1 1 1 1 1 1 1 1 1 Rating 73% (3 Votes)
sd-logos-part1
sd-logos-part2

منتخب از مشتریان با ارزش ما

مشتریان ما سرمایه ما
themeforest-logo
codecanyon--logo
graphicriver-logo
audiojungle-logo
photodune-logo
activeden--logo