نظرسنجی
بیشترین استفاده شما از اینترنت در چه زمینه ای است؟






 
خروجی RSS

قفل کردن www در آدرس URL دومین


20 آبان 1386

آدرس دومین همراه با 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. را بر روی سرور خود باز کنید. اگر این فایل بر روی سرور شما وجود ندارد باید آن را ایجاد کنید. دقت کنید که این فایل اسم ندارد و فقط پسوند دارد. سپس این فرمان را در بالای فایل قرار دهید

RewriteEngine on

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

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

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

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


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

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

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

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

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

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


PHP redirection :

اگر شما تمامی کد های بالا را امتحان کردید و موفق نشدید می توانید از کد 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();
}

اگر این کد در جای صحیح به کار نرود می تواند مشکل ایجاد کند و با پروسه های دیگر تداخل پیدا کند. برای phpBB بهترین جا برای قرار دادن این کد در فایل common.php و قبل از علامت " <? " است.
با استفاده از کد بالا می توانید
www را از آدرس صفحه حذف کنید هر چند اگر فورم شما در root نصب شده است این کار از نظر تکنیک های SEO کار صحیحی به حساب نمی آید.


حذف
www از subdomain :

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

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

RewriteEngine On
RewriteBase /

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

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 را همیشه به آدرس صفحه اول سایت خود اضافه کنیم.

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

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

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

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

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

منبع: pesia-cms

تعداد آراء: 4 رای
یادداشت ها
اميد
1387/05/16 - 15:00:00
خيلي معذرت مي خوام كه دخالت مي كنم ولي گوگل اينقدر شعورش ميرسه كه وقتي يك دومين رو كراول كرد (به فرض با www) مجدد اون دومين رو بدون www كراول نكنه!!‌حتي من و شما كه در حد برنامه نويسان گوگل نيستيم مي دونيم كه اين كار يعني اينك كل دومين ها رو دوبار سرچ كردن و خودتون هم ميدونيد كه چقدر دومين الان وجود داره. و چقدر قابل توجيه براي برنامه نويسان گوگل كه يه if بذارند كه يك دومين دوبار كراول نشه. به نظرم متاسفانه نويسنده اين مقاله فقط خواسته اظهار فضل كنه!!! يه مثال ساده مي زنم تا حرفام رو بفهميد مثلا سايت mambolearn.com ده هزار صفحه داره. كه هم با http://www.mambolearn.com مياد و هم با http://mambolearn.com نويسنده مقاله گفته گوگل مياد هردو آدرس رو كراول مي كنه و ميدونيم كه كراول اين دو دقيقه يك نوع ده هزار صفحه نمايش ميده !!! پس ايا براي برنامه نويس spider گوگل اين مسئله خيلي كوچيك بوده؟!!‌ وقتي دقيقا نتايج يكسانه!! چرا بايد وقتي يه صفحه كراول شده دوباره به خاطر يه www مجدد كراول بشه،‌ براي اثبات حرفم مي تونيد كچ يك سايت رو تو گوگل بزنيد بياد بعد از تو لينك آدرس www رو حذف كنيد. مي بينيد تاريخ كراول دقيقا در يك ثانيه اتفاق افتاده : اين در تاريخ :‌ 30 Jul 2008 17:06:52 GMT http://72.14.205.104/search?hl=en&q=cache%3Awww.mambolearn.com&btnG=Search و اين هم در همان تاريخ و همان ثانيه:‌ 30 Jul 2008 17:06:52 http://72.14.205.104/search?hl=en&q=cache%3Amambolearn.com&btnG=Search بنابراين مي بينيد كه نويسنده مقاله فقط يه سري اراجيف نوشته تا ذهن شما رو مشغول كنه !!!
عماد:
حرفی که نویسنده مقاله زده کاملا درسته. استفاده از mod_rewrite یکی از قابلیت هایی هست که میشه باهاش تمام page rank یک دامین رو روی دامین دیگه اورد.هدف مقاله هم این بوده که تمام page rank روی یک url جمع کرد. در مورد صفحاتی که 2 تا آدرس دارن یعنی هم با www و هم بدون www باز میشن باز هم این حرف درسته که گوگل اونا رو به صورت 2 صفحه کپی و مثل هم index می کنه و برای یک سایت کاهش ارزش صفحات رو به همراه داره. این مورد رو میتونی توی سایت های انگلیسی هم پیدا کنی، مثل: http://www.searchenginejournal.com/google-pagerank-play-doh/5504/ [quote] It’s a problem because when a link goes to t
علیرضا
1387/09/30 - 12:15:00
سلام اقا از کجا بفهمیم که اون مد با WWW کار می کنه یا نه؟ منظورم اینه که من اون مد با www رو درست کردم اما نمی دونم که چطوری بفهمم کار کرده یا نه. والا الان بازم هم با www باز میشه و هم بدون www
عماد:
سلام اینکه میگی هنوز هم با www و هم بدون اون باز میشه یعنی کار نکرده. شما کد رو توی htaccess. قرار دای؟ کدی رو هم که استفاده کردی بزار همین جا تا چک کنم. موفق باشید :08
abyzn
1388/02/06 - 13:38:00
با سلام به دوستان و تشكر از نويسنده دوستان نوشته ها كاملا درسته چون من آمار سايتم رو كه ميگيرم دقيقا در دو حالت دو عدد كاملا متفاوت و با فاصله ياد نشون ميده خودتون ببينيد اين سايت منه: http://www.mirsoft.net بريد به گوگل و در دو حالت زير ببينيد: بزنيد : site :mirsoft.net و site :www.mirsoft.net
بهزاد
1388/03/12 - 12:11:00
سلام و خسته نباشید . کارهایی که گفته بودید انجام دادم . آدرس اصلی سایت انتقال داده میشه ولی پوشه ها انتقال داده نمیشه . یعنی مثلا فروم من که در آدرس http://www.pc-persia.ir/forum قرار داره . با یا بدون www وارد میشه ولی آدرس اصلی سایت یعنی http://www.pc-persia.ir رو اگر بدون www بزنم اتومات ریدایارکت میشه لطفا راهنمایی کنید . متشکرم
عماد:
سلام سایتت رو چک کردم، مشکلی از بابت ریدایرکت نشدن فولدر ها وجود نداره، مثلا قسمت های mail و yahoo رو اگه نگاه کنی میبینی که ریدایرکت میشن روی www. اما در مورد انجمن احتمالا به خاطر تنظیمات خود انجمن و فایل htaccess موجود در فولدر forum هست. من درست با vb کار نکردم و نمی دونم تنظیماتی داره که آدرس پیش فرض رو با www قرار بده یا نه. به هر حال در این مورد به نظرم بهتره یا پشتیبانی vb یا افرادی که آشنایی دارن باهاش صحبت کنی. موفق باشید :08
بهزاد
1388/03/12 - 18:05:00
سلام مجدد و ممنون که جواب منو دادین . داخل پوشه فروم یک فایل htaccess هم هست که داخلش اینا هست : [code] RewriteEngine On RewriteRule ^((urllist|sitemap).*\\.(xml|txt)(\\.gz)?)$ vbseo_sitemap/vbseo_getsitemap.php?sitemap=$1 [L] [/code] ممنون میشم بگید چگونه تغییر بدم یک سوال دیگه هم دارم . یک اسکریپت دارم روی سایت نصب میکنم که کارش کوتاه کننده آدرس هست . یعنی همین ریدایارکت کردن . ولی طوری نوشته شده که باید در صفحه اصلی سایت باشه ولی من داخل یک فولدر ریختم به همین دلیل کار تغییر مسیر رو انجان نمیده . اینم فایل htaccess داخل این پوشه : [code] RewriteEngine on RewriteCond %{HTTP_HOST} ^([^.]+)\\.pc-persia\\.ir$ [NC] RewriteCond %1 !^(www|ftp|mail)$ [NC] RewriteRule ^.*$ site.php?id=%1 [/code] ممنون میشم این رو هم بگید چگونه ویرایش کنم که تغییر مسیر انجام بشه سپاسگزارم
عماد:
در مورد سوال اولت این کد رو بزار توی htaccess ئه فولدر ببین چی میشه: [code] RewriteRule ^forum$ http://www.irpcn.com/forum/$1 [L,R=301] [/code] در مورد سوال دوم هم نمی تونم دقیق بگم چون منم خیلی با htaccess بلد نیستم کار کنم. اما خط آخر اونو به این شکل تغییر بده ببین جواب میده یا نه: [code] RewriteRule ^.*$ forum/site.php?id=%1 [/code]
بهزاد
1388/03/13 - 00:44:00
متاسفانه درست نشد (فروم+اسکریپت) :09 32
آرش
1388/10/20 - 12:19:00
با سلام برای سیستم مدیریت محتوای نیوک که ایندکس آن به صورت زیر است: index.html index.php وقتی index.php را در دامین قفل کنیم باز هم با آدرس index.html باز میشه می خواستم کد دایرکت شدن index.html رو به index.php بپرسم
عماد:
سلام، بفرمایید: [CODE] RewriteRule ^index\.html$ http://www.name.com/index.php [QSA,L,R=301] [/CODE]
محسن
1389/04/31 - 19:19:00
سلام مرسی از مقاله ایی که گذاشتید ولی من یک ایراد برخورد کردم وقتی سه خط بالا را می آورم در .htaccess قرار می دهم سایت دچار مشکل می شود و باید از تنظیمات جوملا حتماً mod_rewrite را غیر فعال کنم در غیر اینصورت سایت بالا می آید ولی در لینک به مطالب به ایراد PAGE NOT FOUND برخورد می کنم و تا مورد mod_rewrite را غیر فعال نکنم جواب نمی ده حالا من باید چیکار کنم
عماد:
سلام احتمالا تداخلی ایجاد می کنه با mod_rewrite جوملا، اما به هر حال بهتره با پشتیبانی جوملا صحبت کنید، در این سایت: http://mambolearn.com/forum چون بنده با جوملا به اون شکل کار نکردم، البته روی مامبو مشکلی نداره و تست شده.
ehsan
1389/04/31 - 19:25:00
سلام ما با این روش www رو از آدرسم حذف کردم اما میخوام بدونم چطوری میتونم http://tabadoliran.co.cc/links.php به http://tabadoliran.co.cc/ به همین روش دایرکت کنم ؟ مرسی
عماد:
سلام این این کد استفاده کن: [code] RewriteRule ^links.php$ http://tabadoliran.co.cc/ [L,R=301] [/code] البته در حال حاضر آدرس دوم، یعنی آدرس اصلی سایت داره اتوماتیک به lins.php ریدایرکت میشه که باید کد اونو برداری.
ehsan
1389/05/03 - 18:20:00
من کدی که گفتین گذاشتم داخل htaccess اما سایتم باز نمیشد به این صورت: [code] RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^tabadoliran\\.co\\.cc$ [NC] RewriteRule ^(.*) http://tabadoliran.co.cc/$1 [QSA,L,R=301] RewriteRule ^links.php$ http://tabadoliran.co.cc/ [L,R=301] Order deny,allow Deny from all [/code] و کد داخل فایل index.php هم این هست:
عماد:
سلام ببینید، وقتی آدرس tabadoliran.co.cc رو وارد می کنیم اتوماتیک به tabadoliran.co.cc/links.php ریدایرکت میشه. در واقع شما باید اول جایی رو که آدرس رو به links.php ریدایرکت میکنه پیدا کنی و اونو حذف کنی. برای همین هست که وقتی کدی که بهت دادم رو استفاده می کنی سایت بالا نمیاد، چون تداخل ایجاد می کنه با کدی که ریدایرکت به links.php رو انجام میده.
ehsan
1389/05/04 - 13:06:00
جایی رو که آدرس رو به links.php ریدایرکت می کنه فایل index.php من هست که چون اینجا نمیشد ارسال کنم کدش رو به صورت عکس گذاشتم که ببینید : http://s1.picofile.com/mypicture/Documents/index.jpg حالا وقتی کد های داخل index.php رو پاک میکنم و از کدی که شما گفتید داخل فایل .htaccess استفاده میکنم اصلا سایت بالا نمیاد و وقتی که فایل index.php رو کلا پاک میکنم باز هم سایت بالا نمیاد و یک صفحه ای تقریبا با این محتویات میاد : [code] Index of / * Web.sitemap * addlink.php * admin.php * approve.php * apptmp/ * banned_websites.txt * footer.php [/code]
عماد:
سلام شما فایل index.php رو که اصلا نباید پاک کنی، چون سرور به این فایل رو برای بالا اوردن سایت رجوع میکنه. اما اینکه میگی با پاک کردن کد ها باز هم سایت بالا نمیاد رو نمیدونم دیگه مشکل چیه. من روی سرور خودم تست کردم و مشکلی نداشت.
مهگامه
1389/12/17 - 01:55:00
با سلام و ممنون از راهنمایی تون لطفا منو بازم راهنمایی کنید اگر بخوام بعد از استفاد از کد زیر RewriteCond %{HTTP_HOST} !^www\\\\.example\\\\.com$ [NC] RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301] سایت اولو روی سایت دوم ری دایرکت کنم و بخوام اسم سیت دوم نمایش داده بشه چیکار کنم؟ مثلا یاهورو زدم صفحه گوگلو نمایش بده و در آدرس بار آدرس یاهو بیاد. لطفا کدشو برام بفرستید. ممنون
hawre
1390/06/12 - 01:50:00
با سلام من برای درست کردن وب سایت در قسمت تنظیمات اولیه به مشکل برخورد کردم آدرسه سایت و که میدم اخطار میده که کارکترهای مناسب برایه آدرسه سایت انتخاب کنید چندین بار امتحان کردم چیکار کنم ممنون :02
یادداشت خود را ثبت کنید



کد امنیتی:    =
loader
در حال ارسال - چند لحظه صبر کنید...