| نويسنده |
پيغام
|
 بابای سی اس اس

تاريخ عضويت: 08 Sep 2006 ارسالها: 1536
|
قفل کردن www در آدرس URL دومین
این مقاله را نوشتم چون به نظرم این مشکل را نزدیک به 99 درصد سایت های ایرانی دارند.
با اجرا کردن این ترفند می توانید ارزش صفحات سایت خودتان را بالا ببرید.
مشکل www
آدرس دومین همراه با www در اصل subdomain دومین بدون www است.
به عنوان مثال www.example.com ساب دومین http://example.com محسوب می شود.البته در حال حاضر دومین همراه با www به عنوان استاندارد شناخته می شود و همیشه آدرس دومین را همراه با www ذکر می کنند.
مشکل اینجاست که شما وقتی دومین سایت خود را همراه با www و یا بدون www وارد کنید در هر دو حالت صفحه سایت شما باز خواهد شد که این امر باعث افت ارزش صفحه شما می شود. به عنوان مثال این دو آدرس رو ببینید:
www.persiantools.com
http://persiantools.com
در گذشته موتور های جستجو هوشمندی حال حاضر را نداشتند. برخی از وب مستر ها شروع به ایجاد صفحات متعدد با متن یکسان کردند که بتوانند از این طریق ارزش کلمات داخل متن را بالا ببرند و از این طریق بتوانند از طریق موتور های جستجو برای خود ترافیک فراهم کنند ولی به مرور موتور های جستجو هوشمند تر شدند و در حال حاضر موتور جستجوی Google به طور کامل می تواند صفحات تکراری را شناسایی کند. شما هنگامی که بر روی یک Domain دو یا چند صفحه با آدرس های مختلف داشته باشید که محتوای آنها یکسان باشد گوگل ارزش صفحات شما را کاهش می دهد (دقت کنید که فقط ارزش صفحات را کاهش می دهد و سایت شما را جریمه (Penalize) نمی کند). در حال حاضر تعداد زیادی از سیستم ها از آرشیو HTML استفاده می کنند که تمامی این صفحات در اصل صفحات تکراری هستند که متن داخل صفحه اصلی با صفحه آرشیو HTML دقیقا یکسان است و این باعث افت ارزش صفحه اصلی و صفحه آرشیو خواهد شد.
حال در نظر بگیرید که سایت شما هم همراه با www و هم بدون www باز شود. در این صورت گوگل در نظر خواهد گرفت که شما برای تمامی صفحات سایت خود یک کپی هم دارید و این باعث افت ارزش تمامی صفحات سایت شما خواهد شد. به عنوان مثال شما تالار های گفتمان راه اندازی کرده اید و در تالار خود 1000 تاپیک دارید و صفحه فورم شما هم با www و هم بدون www بدون مشکل باز می شود. در این صورت در اصل شما 1000 تاپیک تکراری هم دارید.
-http://forum.persia-cms.com/topic 1 .... 1000.html
-http://persia-cms.com/topic 1 .... 1000.html
همانطور که می بینید هر دو آدرس به یک صفحه ختم می شود ولی یکی از آنها 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. را بر روی سرور خود باز کنید. اگر این فایل بر روی سرور شما وجود ندارد باید آن را ایجاد کنید. دقت کنید که این فایل اسم ندارد و فقط پسوند دارد. سپس این فرمان را در بالای فایل قرار دهید
code :RewriteEngine on
شیوه اول : URL = example.com (آدرس بدون www)
برای حذف www از داخل آدرس باید این دو خط را در زیر دستوری که در بالا ذکر شد قرار دهید
code :RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]
اگر این کد بر روی سرور شما کار نمی کند سعی کنید علامت "\" و $ و [nc] را از خط اول حذف کنید.
شیوه دوم : URL = www.example.com (آدرس همراه با www)
برای قفل کردن www در آدرس باید از این دو خط به جای دو خط قبلی استفاده کنید
code :RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]
همانند بخش قبل اگر این کد بر روی Server شما کار نمی کند، علامت "\" و $ و [nc] را از خط اول کد حذف کنید.
اگر این شیوه تنها راه حلی است که برای شما جواب داده است و شما با sub domain ها کار دارید می توانید خط اول را به این شکل تغییر دهید:
code :RewriteCond %{HTTP_HOST} !^(www|sub1|sub2|sub3)\.example\.com$ [NC]
دقت کنید که به جای کلمه example باید domain خود را وارد کنیدو به عنوان مثال برای این سایت من به جای کلمه example کلمه persia-cms را قرار دادم. به جای ساب دومین ها هم باید اسم ساب دومين های را که ساخته اید ، بنویسید.
PHP redirection :
اگر شما تمامی کد های بالا را امتحان کردید و موفق نشدید تنها دو راه در پیش رو دارید :
1 - server خود را تغییر دهید و از ما فضا بخرید تا مشکل نداشته باشید
2 - از این کد php استفاده کنید
code :$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();
}
اگر این کد در جای صحیح به کار نرود می تواند مشکل ایجاد کند و با پروسه های دیگر تداخل پیدا کند. برای phpBB بهترین جا برای قرار دادن این کد در فایل common.php و قبل از علامت " <? " است.
با استفاده از کد بالا می توانید www را از آدرس صفحه حذف کنید هر چند اگر فورم شما در root نصب شده است این کار از نظر تکنیک های SEO کار صحیحی به حساب نمی آید.
حذف www از subdomain :
حال مشکل www در دومین را حل کردیم
اکنون باید ببینیم که چطور می توان www را از subdomain ها حذف کرد
برای این منظور باید از این دستور استفاده کنیم
راه حل :
اول باید به پوشه subdomain وارد شوید و فایل htaccess. را باز کنید (اگر این فایل وجود ندارد باید آن را ایجاد کنید)
سپس باید این دستور را در بالای فایل قرار دهید:
code :
RewriteEngine On
RewriteBase /
حال برای subdomain ها باید از این دو خط کد استفاده کنید تا www از ساب دومین ها حذف شود و تمامی سایت دومین هایی که همراه با www هستند به آدرس ساب دومین بدون www ری دایرکت شود.
باید از این دو خط کد استفاده کنید:
code :RewriteCond %{HTTP_HOST} !^forum\.example\.com$ [NC]
RewriteRule ^(.*) http://forum.example.com/$1 [QSA,L,R=301]
از این طریق می توانید www را از subdomain های خود حذف کنید
قفل کردن index.php در آدرس صفحه :
مشکل دیگری که در سایت های ایرانی به طور فراگیر دیده میشود ، وجود index.php یا index.html در آدرس صفحه اول است.
در حال حاضر اگر شما آدرس صفحه اول forum خود را بدون index.php وارد کنید و enter را بزنید ، صفحه اول فورم شما باز خواهد شد ولی می توانید در آخر آدرس index.php را هم وارد کنید و باز هم همان صفحه اول باز خواهد شد.
در اینجا هم مشکل وجود دو کپی از صفحه اول وجود دارد. در اصل برای صفحه اول سایت شما دو صفحه کاملا یکسان دارید که یکی از آنها همراه با index.php است و دیگری بدون آن. در نتیجه از نظر موتور های جستجو صفحه اول شما دارای یک کپی است و از این رو ارزش صفحه اول سایت شما کاهش می یابد. ما باید سعی کنیم که با استفاده از redirection آن بخش index.php را همیشه به آدرس صفحه اول سایت خود اضافه کنیم.
امیدوارم مفید بوده باشه
امیر عباس عبدالعلی _________________ سوالات را در پیغام خصوصی مطرح نکنید. سوالاتی که در پیغام خصوصی مطرح شود ، بی جواب خواهد ماند.
آموزش CSS , سی اس اس |
انجمن تخصصی طراحی وب و کدنویسی دیزاین آرین |
|
| بازگشت به بالا |
|
 |
|
|

تاريخ عضويت: 09 Sep 2006 ارسالها: 58
|
مرسی امیر جان عالی بود !
من ساب ها رو روی www قفل کردم (شما فقط توضیح حذف www رو داده بودی ) درست کار میکنه :
http://forum.webshahr.com روی www.forum.webshahr.com قرار میگیره !
فقط index رو نتونستم قفلش کنم ! یعنی فرقی نمیکرد از هر دو تا کد هم که گفتی استفاده کردم ولی index.php نمایش داده نمی شد ! |
|
| بازگشت به بالا |
|
 |
|
|
 بابای سی اس اس

تاريخ عضويت: 08 Sep 2006 ارسالها: 1536
|
شما ساب رو بدون www قفل کن
معمولا ساب دومین www نداره و همه جا همینطوره. من هم اینجا رو بدون www قفل کردم. پیشنهاد هم شده ساب دو بدون www قفل کنید.
برای قفل کردن index.php هم فقط کافیه
code :RewriteRule ^$ /index.php [QSA,L,R=301]
رو بزاری زیر همون دو خط اولی که باهاش www رو توی ساب دومین قفل کردی
همین کار کفایت میکنه. البته شاید کار نکنه و مجبور باشی از این کد استفاده کنی
code :RewriteRule ^$ http://forum.example.com/index.php [QSA,L,R=301]
حواست به کش مرورگر هم باشه
هر بار که چک میخوای بکنی حتما کش مرورگر رو پاک کن. ممکنه index.php قفل شده بود لی از روی کش مرورگر آدرس صفحات باز میشد و شما فکر میکردی هنوز قفل نیست _________________ سوالات را در پیغام خصوصی مطرح نکنید. سوالاتی که در پیغام خصوصی مطرح شود ، بی جواب خواهد ماند.
آموزش CSS , سی اس اس |
انجمن تخصصی طراحی وب و کدنویسی دیزاین آرین |
|
| بازگشت به بالا |
|
 |

تاريخ عضويت: 09 Sep 2006 ارسالها: 58
|
|
| بازگشت به بالا |
|
 |
|
|

تاريخ عضويت: 09 Sep 2006 ارسالها: 58
|
| راستی درباره ثبت شدن انجمن خودت در گوگل هنوز یکم زود نیست ؟ |
|
| بازگشت به بالا |
|
 |
 بابای سی اس اس

تاريخ عضويت: 08 Sep 2006 ارسالها: 1536
|
نه باید تا حالا ثبت میشده
گوگل بار ها به اینجا سر زده
تو صفحه اکانت sitemap این رو نشون میده
متاسفانه همیشه مشکل داره. سرور جواب نمیده _________________ سوالات را در پیغام خصوصی مطرح نکنید. سوالاتی که در پیغام خصوصی مطرح شود ، بی جواب خواهد ماند.
آموزش CSS , سی اس اس |
انجمن تخصصی طراحی وب و کدنویسی دیزاین آرین |
|
| بازگشت به بالا |
|
 |
|
|

تاريخ عضويت: 09 Sep 2006 ارسالها: 58
|
راستی امیر اگر از Addon Domain استفاده کنیم و یک دومین رو مثلاً همین e107.ir را روی ساب قرار بدیم www.e107.webshahr.com باز هم از پیج رنک کم میشه ؟  |
|
| بازگشت به بالا |
|
 |

تاريخ عضويت: 09 Sep 2006 ارسالها: 58
|
| راستی امیر امروز چک کردم صفحه اول انجمنت ثبت شده در گوگل ! |
|
| بازگشت به بالا |
|
 |
|
|
 کاربر افتخاری

تاريخ عضويت: 10 Sep 2006 ارسالها: 56
|
|
| بازگشت به بالا |
|
 |
 مدیریت سایت

تاريخ عضويت: 09 Sep 2006 ارسالها: 1200
|
|
| بازگشت به بالا |
|
 |
|
|
|
|