آموزش:قفل کردن www در آدرس URL   

از دانشنامه جوملا فارسی - مامبو فارسی
(تغییرمسیر از قفل کردن www در آدرس URL)
پرش به: ناوبری، جستجو

مقدمه

با اجرا کردن این ترفند می‌توانید ارزش صفحات سایت خودتان را بالا ببرید.

مشکل www

آدرس دامنه (Domain) همراه با www در اصل subdomain دامنه بدون www است.

به عنوان مثال http://www.example.com ساب دومین http://example.com محسوب می‌شود.البته در حال حاضر دامنه همراه با www به عنوان استاندارد شناخته می‌شود و همیشه آدرس دامنه را همراه با www ذکر می‌کنند.


مشکل اینجاست که شما وقتی دامنه سایت خود را همراه با www و یا بدون www وارد کنید در هر دو حالت صفحه سایت شما باز خواهد شد که این امر باعث افت ارزش (Rank) صفحه شما می‌شود. به عنوان مثال این دو آدرس را مشاهده کنید:


http://www.persiantools.com

http://persiantools.com


در گذشته موتورهای جستجو هوشمندی حال حاضر را نداشتند. برخی از وب مسترها شروع به ایجاد صفحات متعدد با متن یکسان کردند که بتوانند از این طریق ارزش کلمات داخل متن را بالا ببرند و از این طریق بتوانند از طریق موتورهای جستجو، برای خود ترافیک فراهم کنند ولی به مرور موتورهای جستجو هوشمندتر شدند و در حال حاضر موتور جستجوی Google به طور کامل می‌تواند صفحات تکراری را شناسایی کند. شما هنگامی که برروی یک Domain دو یا چند صفحه با آدرس‌های مختلف داشته باشید که محتوای آنها یکسان باشد گوگل ارزش صفحات شما را کاهش می‌دهد (دقت کنید که فقط ارزش صفحات را کاهش می‌دهد و سایت شما را جریمه (Penalize) نمی‌کند). در حال حاضر تعداد زیادی از سیستم‌ها از آرشیو HTML استفاده می‌کنند که تمامی این صفحات در اصل صفحات تکراری هستند که متن داخل صفحه اصلی با صفحه آرشیو HTML دقیقا یکسان است و این باعث افت ارزش صفحه اصلی و صفحه آرشیو خواهد شد.

حال در نظر بگیرید که سایت شما هم همراه با www و هم بدون www باز شود. در این صورت گوگل در نظر خواهد گرفت که شما برای تمامی صفحات سایت خود یک کپی هم دارید و این باعث افت ارزش تمامی صفحات سایت شما خواهد شد. به عنوان مثال شما تالارهای گفتمان راه‌اندازی کرده‌اید و در تالار خود 1000 تاپیک دارید و صفحه فورم شما هم با www و هم بدون www بدون مشکل باز می‌شود. در این صورت در اصل شما 1000 تاپیک تکراری هم دارید.

همانطور که می‌بینید هر دو آدرس به یک صفحه ختم می‌شود ولی یکی از آنها www دارد و یکی از آنها www ندارد.

حال اگر سایت شما هم با www و هم بدون www باز بشود ممکن است برخی از سایت‌های دیگر به شکل متفاتی ( لینک با www و بدون www ) به شما لینک بدهند و موتورهای جستجو آن لینک را دنبال کنند در این حالت برای هر صفحه شما یک نسخه کپی هم پیدا خواهند کرد و این باعث افت PageRank صفحه شما می‌شود.

راه حل مشکل استفاده از redirect کردن آدرس‌های بدون www به آدرس با www و یا بالعکس است.


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

اینترنت بر اساس استانداردها بنا شده و موتورهای جستجو هم استانداردها را دنبال می‌کنند. در حال حاضر یک URL استاندارد دارای www است و همه‌جا و در همه سایت‌ها هنگامی که لینک سایتی را معرفی می‌کنند همیشه www را ذکر می‌کنند. پس ما نیز سعی می‌کنیم که www را در آدرس صفحه حفظ کنیم. بعضی از سایت‌ها www را به sub domain‌های خود نیز اضافه می‌کنند که این کار باعث طولانی شدن آدرس صفحه می‌شود و کمتر در وب دیده شده که سایت‌هایی از این شیوه استفاده کنند و در اکثر مواقع سایت‌ها www را در sub domain قرار نمی‌دهند.

راه حل

apache mod rewrite :

مثل همیشه Apache در اینگونه مواقع بهترین گزینه برای رفع مشکل است.

کاری که باید انجام دهید این است که ببینید سایت شما در هر دو حالت با www و بدون www باز می‌شود یا خیر. اگر سایت شما در هر دو حالت باز می‌شود باید با استفاده از 301 http redirection پیشوند www را به صفحه اضافه کنید (در اصل صفحه بدون www را به صفحه www دار هدایت کنید). با انجام این کار کاربران هیچ تغییری را حس نخواهند کرد ولی موتورهای جستجو متوجه می‌شوند که آدرس سایت همراه با www است.

برای این کار باید فایل htaccess. را بر روی سرور خود باز کنید. اگر این فایل بر روی سرور شما وجود ندارد باید آن را ایجاد کنید. دقت کنید که این فایل اسم ندارد و فقط پسوند دارد. سپس این فرمان را در بالای فایل قرار دهید. (این فایل ممکن است در هاست شما مشاهده نشود، دقت داشته باشید که در لینوکس فایلهایی که نقطه آغاز می‌شوند از دید عادی پنهان می‌شوند)


<source lang="php">

RewriteEngine on

</source>


شیوه اول : URL = example.com (آدرس بدون www)

برای حذف www از داخل آدرس باید این دو خط را در زیر دستوری که در بالا ذکر شد قرار دهید


<source lang="php">

RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

</source>


اگر این کد بر روی سرور شما کار نمی‌کند سعی کنید علامت "\" و $ و [nc] را از خط اول حذف کنید.

شیوه دوم : URL = www.example.com (آدرس همراه با www)

برای قفل کردن www در آدرس باید از این دو خط به جای دو خط قبلی استفاده کنید


<source lang="php">

RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule (.*) http://www.example.com$1 [R=301]

</source>


همانند بخش قبل اگر این کد بر روی Server شما کار نمی‌کند، علامت "\" و $ و [nc] را از خط اول کد حذف کنید.

اگر این شیوه تنها راه حلی است که برای شما جواب داده است و شما با sub domain‌ها کار دارید می‌توانید خط اول را به این شکل تغییر دهید:


<source lang="php">

RewriteCond %{HTTP_HOST} !^(www|sub1|sub2|sub3)\.example\.com$ [NC]

</source>


دقت کنید که به جای کلمه example باید domain خود را وارد کنید و به عنوان مثال برای این سایت من به جای کلمه example کلمه persia-cms را قرار دادم. به جای ساب دومین‌ها هم باید اسم ساب دومين‌هایی را که ساخته‌اید ، بنویسید.

PHP redirection

اگر شما تمامی کدهای بالا را امتحان کردید و موفق نشدید تنها دو راه در پیش رو دارید :

1. server خود را تغییر دهید و از مامبوسرور فضا بخرید تا مشکل نداشته باشید

2. از این کد php استفاده کنید


<source lang="php">

$req_uri = $_SERVER['REQUEST_URI']; $req_domain = $_SERVER['HTTP_HOST']; $sub = substr( $domaine, 0, strpos($domaine,".") ); if ($sub != 'www') {

  header("Status: 301 Moved Permanently", false, 301);
  header("Location: http://www.example.com/$req_uri");
  exit();

}

</source>


اگر این کد در جای صحیح به کار نرود می‌تواند مشکل ایجاد کند و با پروسه‌های دیگر تداخل پیدا کند. برای phpBB بهترین جا برای قرار دادن این کد در فایل common.php و قبل از علامت " <? " است.

با استفاده از کد بالا می‌توانید www را از آدرس صفحه حذف کنید هر چند اگر فورم شما در root نصب شده است این کار از نظر تکنیک‌های SEO کار صحیحی به حساب نمی‌آید.


حذف www از subdomain

حال مشکل www در دومین را حل کردیم

اکنون باید ببینیم که چطور می‌توان www را از subdomain‌ها حذف کرد

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


راه حل

اول باید به پوشه subdomain وارد شوید و فایل htaccess. را باز کنید (اگر این فایل وجود ندارد باید آن را ایجاد کنید)

سپس باید این دستور را در بالای فایل قرار دهید:


<source lang="php">

RewriteEngine On RewriteBase /

</source>


حال برای subdomain‌ها باید از این دو خط کد استفاده کنید تا www از ساب دومین‌ها حذف شود و تمامی سایت دومین‌هایی که همراه با www هستند به آدرس ساب دومین بدون www ریدایرکت شود.

باید از این دو خط کد استفاده کنید:


<source lang="php">

RewriteCond %{HTTP_HOST} !^forum\.example\.com$ [NC] RewriteRule ^(.*) http://forum.example.com/$1 [QSA,L,R=301]

</source>


از این طریق می‌توانید www را از subdomain‌های خود حذف کنید


قفل کردن index.php در آدرس صفحه

مشکل دیگری که در سایت‌های ایرانی به طور فراگیر دیده می‌شود ، وجود index.php یا index.html در آدرس صفحه اول است.

در حال حاضر اگر شما آدرس صفحه اول forum خود را بدون index.php وارد کنید و enter را بزنید ، صفحه اول فورم شما باز خواهد شد ولی می‌توانید در آخر آدرس index.php را هم وارد کنید و باز هم همان صفحه اول باز خواهد شد.

در اینجا هم مشکل وجود دو کپی از صفحه اول وجود دارد. در اصل برای صفحه اول سایت شما دو صفحه کاملا یکسان دارید که یکی از آنها همراه با index.php است و دیگری بدون آن. در نتیجه از نظر موتورهای جستجو صفحه اول شما دارای یک کپی است و از این رو ارزش صفحه اول سایت شما کاهش می‌یابد. ما باید سعی کنیم که با استفاده از redirection آن بخش index.php را همیشه به آدرس صفحه اول سایت خود اضافه کنیم.

راه حل

در بخش قبل توضیح دادیم که چطور باید www را از subdomain حذف کنیم

تنها کافیست این یک خط کد را به زیر کد بالا اضافه کنید تا index.php نیز در آدرس صفحه اول فورم شما قفل شود :


<source lang="php">

RewriteRule ^$ /index.php [QSA,L,R=301]

</source>


اگر احیاناً کد بالا موثر واقع نشد از این کد استفاده کنید


<source lang="php">

RewriteRule ^$ http://forum.example.com/index.php [QSA,L,R=301]

</source>


با استفاده از این دو ترفند ساده می‌توانید ارزش صفحات خود را به طور چشمگیری بالا ببرید

در حال حاضر بسیاری از سایت‌های بزرگ ایرانی با این مشکل مواجه هستند

به عنوان مثال به این لینک‌ها توجه کنید


http://www.forum.majidonline.com

http://forum.majidonline.com

http://www.forum.majidonline.com/index.php

http://forum.majidonline.com/index.php


و یا


http://www.forum.p30world.com/

http://forum.p30world.com/

http://www.forum.p30world.com/index.php

http://www.forum.p30world.com/index.php


تمامی این 4 لینک به یک صفحه ختم می‌شود


در اصل ارزش صفحه اول سایت به خاطر همین مشکل پایین آمده و اگر همین تکنیک ساده به کار برده شود ارزش صفحه اول سایت majidonline و p30world به مراتب بیشتر خواهد شد و پیج رنک بالاتری کسب خواهد کرد. حال صفحات تکراری آرشیو html را هم به این صفحات اضافه کنید


گردآورنده : امیر عباس عبدالعلی


8.pngاستفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.