0%

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

 

یا میلیونها تومان هزینه می کنند تا دامنه ای که مد نظر دارند و توسط شخص دیگری قبلا ثبت شده خریداری کنند.

 

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

 

خوشبختانه تکنیکی هست به نام URL Rewriting که براحتی url را به یک url مناسب تغییر می دهد، با دردسری به مراتب کمتر از پیداکردن دامنه مناسب. این روش به شما امکان می دهد URL را بدون نیاز به تغییرات ساختاری سایت خود به یک URL کاربرپسند، ساده و همراه با کلمات کلیدی تبدیل کنید.

این مطلب موضوعات زیر را شامل می شود

۱-URL Rewriting چیست؟

۲-چطور URL Rewriting به رنکینگ سایت کمک می کند؟

۳-نمونه های URL Rewriting به همراه regular expressions, flags و conditionals

 

URL Rewriting چیست؟

 

اگر شما بخواهید به بانک نامه ای بنویسید ممکن است برنامه ای برای نوشتن نامه مثل word را بازکنید و آن را با نام lettertobank.doc  ذخیره کنید. این فایل ممکن است در دایرکتوری Document شما قرار گیرد و دسترسی به فایل شما چیزیست شبیه به این C:\Windows\users\julie\Documents\lettertobank.doc . یک مسیر = یک فایل.

 

همینطور اگر شما یک سایت بانک طراحی می کنید . صفحه ای می سازید با نام page1.html و آن را آپلود می کنید در مرورگر خود اینچنین به آن اشاره می کنید http://www.mybank.com/page1.html. یک URL = یک منبع. در این مورد منبع یک صفحه است که می توانید محصول باشد یا هر چیز دیگری.

 

URL Rewriting این قاعده را تغییر می دهد و به شما این امکان را می دهد تا URL را از منبع جدا کنید. با URL Rewriting شما می توانید http://www.mybank.com/aboutus.html این صفحه را داشته باشید و به کاربر محتوای http://www.mybank.com/page1.html را نشان دهید یا صفحه about-us/ یا درباره-ما/ یا هر URL دیگری. یک چیزیست مثل shortcuts برای دسترسی به منبع. یک URL = یک روش برای پیدا کردن منبع.

 

با URL Rewriting منبع و URL که به هم ارتباط پیدا می کنند می توانند کاملا جدا از هم عمل کنند.

 

چطور URL Rewriting به رنکینگ سایت کمک می کند؟

 

برای مثال با نگاه به URL زیر می توان فهمید که چه چیزی در این سایت فروخته می شود

 

http://digikala.com/?Products=Notebook&Product=Notebook-Apple-MacBook-Pro-MC700

دیجی کالا سایت معتبری است و بازدید و فروش قابل توجهی دارد، ولی اگر برای عبارت Apple MacBook Pro در گوگل جستجو کنید با سایت های خارجی بسیاری مواجه می شود و وقتی عبارت اپل مک بوک پرو را به فارسی جستجو کنیم وبلاگ ویزویز:  قیمت-لپ-تاپ-اپل-مک-بوک-پرو/http://vizviz.net/tag بالاتر از دیجی کالا که هم فروشکاه است و هم بازدید بسیار بیشتری دارد نمایش داده می شود.

بازنویسی URL

حتی در نتیجه جستجو در URL اپل مک بوک پرو بارنگ پررنگ تری نمایش داده می شود.

 

بنابراین آیا دیجی کالا می تواند این URL را شبیه به چیزی مثل این MC700-اپل-مک-بوک-پرو/http://digikala.com/product تغییر دهد بدون اینکه مجبور شود در ساختار سایت خود تغییراتی ایجاد کند؟ جواب URL Rewriting است.

 

بصورت ساده URL Rewriting به سرور می گوید بجای ?Products=Notebook&Product=Notebook-Apple-MacBook-Pro-MC700 این MC700-اپل-مک-بوک-پرو/product را نمایش بده بدون آنکه مردم یا موتور جستجو متوجه شود.

 

به گفته گوگل خیلی موارد هست (بیش از ۲۰۰ مورد) که در رنکینگ سایت شما در جستجو تاثیر می گذارد. ولی URL کاربرپسند و خوانا جزو مهمترین این موارد دسته بندی می شود.

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

 

 چطور URL خود را بازنویسی کنید

 

اینکه آیا شما قادر به انجام URL Rewriting باشید یا نه به سرور شما بستگی دارد. معمولا Apache  با ماژول  URL rewriting ارائه می شود mod_rewrite . و  ISAPI Rewrite همان کار را  Windows IIS انجام می دهد ولی ۱۱۰ دلار هزینه نصب دارد.

 

ساده ترین راه

 

در ساده ترین راه نشان می دهیم چگونه یک صفحه استاتیک را تغییر نام دهید. برای استفاده از فانکشن URL Rewrite می بایست یک فایل htaccess. ایجاد کنید یا آن را ویرایش کنید. این فایل در root اصلی سایت شما قرار می گیرد. برای مثال اگر صفحه درباره دوربین عکاسی در سایت خود دارید به نام hffnddfyvv.html شما می توانید این خط را به فایل htaccess. خود اضافه کنید:

 

[code]RewriteEngine On
RewriteRule    camera.html    hffnddfyvv.html[/code]

 

حالا اگر به بروید شما در واقع به hffnddfyvv.html رفته اید از آن گذشته این آدرس باقیمی ماند و بازدید کنندگان و موتور جستجو از اینکه شما URL را تغییر داده اید آگاه نخواهند شد.

 

آشنایی با regular expressions

 

در URL Rewriting شما میبایست مسیر را یکی کنید، این دامنه و اولین اسلش را شامل نمی شود. دستور بالا به آپاچی می گوید هر وقت مسیری که شامل camera.html را دریافت کردی، صفحه hffnddfyvv.html را نمایش بده. این ممکن است دردسر ساز شود برای مثال شما بخواهید صفحه باز کنید ولی همچنان صفحه قبلی باز می شود. چیزی که ما به آن احتیاج داریم این است:

[code]RewriteEngine On
RewriteRule   ^camera.html$   hffnddfyvv.htm[/code]

 

دیگر $camera.html^ یک search string نیست بلکه regular expressions است، که هر کدم از کاراکترهای ^ . + * ? ^ ( ) [ ] { } و $ تاثیری اعمال می کنند. ^ برابر بودن اول مسیر URL را چک می کند و $ برابر بودن آخر را. این بدان معناست که بتدا و انتهای مسیر می بایست camera.html باشد و فقط تغییر URL برای canera.html کار می کند و نه برای best2011camera.html یا mycamera.html . این برای موتور جستجوی گوگل مهم است و می تواند براحتی شما را برای  duplicate content یعنی دسترسی به یک صفحه از طریق لینکهای مختلف جریمه کند.

 

نبستن انتهای فایل

 

شما می توانید این را بافرار از نبستن فایل بهتر کنید. یعنی لینک شما می تواند به هر دوحالت زیر باز شود:

و /http://mysite.com/camera

[code]RewriteEngine On
RewriteRule   ^camera/?$   hffnddfyvv.html  [NC][/code]

 

? مشحص می کند که کاراکتر آخر اختیاریست. بنابر این URL می تواند با یا بدون اسلش کار کند. موتور جستجو این مورد را  duplicate content در نظر نمی گیرد و می تواند از رفتن به صفحه خطا هنگامی که کسانی اشتباهی آن را وارد می کنند جلوگیری کند. چیزهایی که در آخر دستور در براکت قرار میگیرد به آپاچی مواردی را اشاره می کند.  [NC] یک پرچم است که می گوید این دستور حساس به حروف کوچک و بزرگ نیست بنابراین نیز کار می کند

 

نمونه وکی پدیا

 

حالا می توانیم به یک نمونه واقعی نگاه کنیم، ظاهرا ویکی پدیا از URL Rewriting برای این عنوان صفحه را به فایل php بدهد استفاده می کند

ایران/http://fa.wikipedia.org/wiki

نوشته شده به

ایران=http://fa.wikipedia.org/w/index.php?title

برای انجام چنین کاری در htaccess. می بایست این چنین اقدام شود:

 

[code]RewriteEngine On
#Look for the word "wiki" followed by a slash, and then the article title
RewriteRule   ^wiki/(.+)$   w/index.php?title=$1   [L][/code]

 

دستور قبلی شامل ؟/ بود یعنی ۰ تا یک اسلش اگر +/ باشد یعنی یک یا بیشتر. بنابر این ///////http://mysite.com/camera هم کار می کند در این دستور (.) مطابقت با هر کاراکتر بنابر این +. می شود مطابقت با یک یا بیشتر از هر کاراکتری که بود. و () به آپاچی می گوید هر چیزی که +. در این میان آمد را به خاطر بسپار. و بعد دستور بالا به آپاچی می گوید دنبال /wiki که در ادامه آن یک یا هر چند تا از هر کاراکتر وجود دارد بگرد و بخاطر بسپار. و سپس هرچیزی که بخاطر سپردی را با ۱$ جایگزین کن. بنابراین وقتی rewriting تمام شد ایران/wiki می شود ایران=w/index.php?title .

ویکی پدیا

 

نمون بالا کامنت را معرفی می کند آپاچی هر چیزی بعد از # را در نظر نمیگیرد. بنابراین فکر خوبیست اگر توضیحی قرار دهید تا کسانی که بعدا روی فایل کار می کنند متوجه شوند چه کاری قبلا صورت گرفته. [L] به این معنی است که اگر آپاچی مطابقت را پیدا کرد دست از جستجو بر دارد. در غیر اینصورت آپاچی جستجو را ادامه می دهد که غیر ضروریست.

نویسنده

تیم مدیریت پونیشا

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

برچسب ها


  • فرزام
    دی ۹, ۱۳۹۰

    مطلب جالبی راجع به URL Rewrite نوشته ای خیلی روان و قشنگ من رو با این موضوع آشنا کرد با اجازت این مطلب در https://twitter.com/#!/@fkniya شیر می کنم تا دوستانم نیز آن را بخوانند

    • نیما نورمحمدی
      دی ۹, ۱۳۹۰

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

  • s_sh
    شهریور ۵, ۱۳۹۱

    مطلبی که گذاشتید خیلی خوب بود خصوصا اینکه regular expressions رو خیلی خوب توضیح داده بودید
    اما حالا یه سوالی دارم
    اینکه URL Rewriting کار کنه یا نه بستگی به سرور داره یعنی چی؟ چون برای من فایل .htaccess ام کار نمیکنه و سرورم هم cpanel هست و در ضمن یه جای دیگه خوندم که میشه mod_rewrite رو روی wamp نصب کرد ممکنه بگید چطور باید نصبش کرد
    و در آخر ممنون

  • فرشته
    بهمن ۵, ۱۳۹۲

    سلام
    ممنون ا ز مطلب خوبتون
    میخواستم بدونم .htaccess رو باید چطور ساخت
    من با xamp کار میکنم

  • کوروش
    بهمن ۱۴, ۱۳۹۲

    باید Mod Rewrite توی Apache فعال باشه.

    با این دستور فعال می شه: a2enmod rewrite

  • polbadman
    مرداد ۱۱, ۱۳۹۳

    ممنون مفید بود