• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

آموزش ساخت لینکهای مناسب سئو

doctor.sniff

Registered User
تاریخ عضویت
20 سپتامبر 2013
نوشته‌ها
233
لایک‌ها
111
در گذشته تفکر ساده‌ای نسبت به بعضی از مسایل داشتم. به URL بعضی از سایت‌ها که نگاه می‌کردم چیزی به ذهنم می‌رسید، اونم این بود چطور اینهمه دایرکتوری در این سایت‌ها ساخته شده؟ زمان و برنامه ریزی لازم برای ساخت این تعداد دایرکتوری وجود داشته؟ برای مثال این مقاله در یاهو را ببینید:
Yahoo!
آیا news.yahoo.com واقعا ساختار دایرکتوری دارد که در این URL نشون داده شده است؟ مطمئنا جواب منفی است. ساختن تعداد بی شماری دایرکتوری در وب سایت با هزاران فایلindex.html واقعا امکان پذیر نیست. (در ضمن، انجام چنین کاری منطقی هم نیست؛ صفحات دینامیک و کواری‌ها برای همین کار وجود دارند) البته برای ساختن اینچنین URL ها که نشون دهنده ساختار دایرکتوری هستند، یک راه وجود دارد. این URL متغیرهای صفحه دینامیک را بطوری درون خود جای می‌دهد که ساختاری شبیه دایرکتوری پیدا می‌کنند. این کار، بازنویسی موتور نام دارد شما در زمان بازنویسی موتور، URLی می‌سازید که برای مردم منطقی بوده و برای موتورهای جستوجو نیز جذاب است. حالا ببینید چطور می‌توان چنین کاری انجام داد.
در آپاچی، خصوصیتی به نام mod_rewrite وجود دارد که می‌توانید با استفاده از آن، بازنویسی موتور وب را انجام دهید. از آنجا که ما از آپاچی به عنوان سرور منتخب استفاده می‌کنیم، نحوه تنظیمات mod_rewrite را توضیح خواهیم داد.
mod_rewrite یکی از خصوصیات بسیار جالب است. بعضی‌ها این خصوصیت را "جادویی" می‌دانند و بعضی دیگر آن را "کابوس"، در واقع، این خصوصیت به نوعی کابوس جادویی است که اگر با مهارت و به طور علمی بکار گرفته شود، به ابزاری بسیار قدرتمند تبدیل می‌شود. البته این خصوصیت، راه حل همه فن حریف برای URL ها محسوب نمی‌شود، اما می‌تواند بسیاری از مشکلات را حل کند. شما نیز می‌توانید از mod_rewrite برای کارهای زیر استفاده کنید:
1. پیشگیری از هات لینکینگ (Hot linking)
2. ساختن URL های ساده و مناسب سئو، استفاده از استرینگ‌های کواری منطقی
3. ساختن صفحات ریدایرکت
ریدایرکت کردن (ارجاع دادن) بسیار مفید است، زیرا شما می‌توانید صفحات را در صورت نیاز، انتقال داده، اما در همین حال URL قدیمی را حفظ کنید و تنها از آدرس صفحه جدید استفاده کنید. این کار باعث می‌شود شما دیگر نیازی به ریدایرکت کردن از طریق اسکریپت سمت سرور، اسکریپت سمت مشتری یا متا رفرش (Meta-refresh) نداشته باشید و رتبه سئو شما نیز دچار کاهش نمی‌شود.
در هر صورت، در این آموزش من می‌خواهم بر نحوه استفاده از mod_rewrite برای جایگزین کردن استرینگ‌های کواری تمرکز کنم.
هدف ما
بگذارید بگوییم که شما یک اسکریپت PHP نوشته‌اید که 10 رستوران برتر را در هر شهر و استان رتبه‌بندی کرده است. شما از اسکریپت عالی خود، بسیار خوشحال هستید. سال‌های زیادی را صرف جمع‌آوری چنین اطلاعاتی کر‌ه اید. بگذارید فرض کنیم که وب سایت شما www.best-food-of-the-iran.com است. خب، URL بهترین رستوران در تهران بسیار زشت به نظر می‌رسد:
http://www.best-food-of-the-iran.com/index.php?operation=top&state=tehran&city=tehran&limit=10
مطمئنا زشت است! بگذارید ببینیم با mod_rewrite چه کارهایی می‌توان انجام داد تا ظاهر URL زیباتر شده و کاربر بتواند آن را درک کند. توجه داشته باشید که URL باید برای موتورهای جستوجو نیز مناسب باشد. (از آنجا که موتورهای جستوجو، رتبه شما را بر اساس مسیر و نام فایل تنظیم می‌کنند، قرار دادن اطلاعات مرتبط در مسیر مرکزی به جای استرینگ کواری می‌تواند باعث ارتقای قابل توجه رتبه شما شود.)
mod_rewrite را فعال کنید
اولین کار برای استفاده کردن از mod_rewrite در وب سایت شما، نصب و فعال کردن این قابلیت است. اگر شما ادمین سیستم دارید، آنها می‌توانند چنین کاری را برای شما انجام دهند و اگرخودتان ادمین سرورتان هستید، می توانید به httpd.conf دسترسی پیدا کرده و خطوط زیر را بدون کامنت کنید:
#LoadModule rewrite_module modules/mod_rewrite.so
با حذف # (یا با اضافه کردن خط، اگر وجود نداشت) این کار انجام می شود. شما باید آپاچی را ریستارت کنید تا تغییرات اعمال شود.


یک فایل .htaccess بسازید
یک فایل تکست ساده ساخته و خطوط زیر را اضافه کنید:
Options +FollowSymLinks
RewriteEngine On
این خطوط به شما اطمینان می‌دهند که mod_rewrite فعال شده و کار می‌کند. این فایل را به صورت htaccess. ذخیره کنید. مطمئن شوید که فایل به اشتباه، به صورتhtaccess.txt. ذخیره نشده باشد. (اگر شما فایل را در notepad می‌سازید، حتما گزینه "All Files" را در منوی نوع فایل انتخاب کرده و سپس فایل را ذخیره کنید. اگر هم از vi استفاده می‌کنید، باید از قبل بدانید، اوضاع از چه قرار است و پسوند فایل‌ها نیز خودبخود انتخاب می‌شوند) این فایل را در دایرکتوری اصلی سایت خود قرار دهید.


قوانین و عبارت‌های معمولی را بازنویسی کنید
حالا آماده نوشتن تعدادی از قوانین پایه‌ای هستیم. هر قانون از این شکل پیروی می‌کند:
RewriteRule PATTERN DESTINATION [FLAGS]
Pattern چیزی است که ما به دنبال آن بوده و Destination چیزب است که برای آن بازنویسی می‌کنیم. Flags انتخاب‌هایی هستند که شما می‌توانید بر اساس آنها بازنویسی کنید. Flags ها فراتر از دیدگاه این خودآموز بوده و باید منتظر مقاله‌های بعدی باشید.
مثال:
RewriteRule ^home\.html$ index.html [R,NC,L]
این بازنویسی قانون، بازدیدکننده را به index.html ارجاع می‌دهد در حالی که موتورهای جستوجو home.html را دریافت می‌کنند. Mod_rewrite به شما اجازه می‌دهد از عبارت‌های ریجکس (به طور خلاصه regexes) استفاده کرده و PATTERN را تجزیه کنید. اگر با regex آشنایی ندارید، آنها عبارت‌های بسیار قدرتمندی هستند که با استفاده از حروف خاص باعث ایجاد الگوها و نوع‌ها در جستوجو می‌شوند، مثلا دامنه، فضای سفید، اعداد و غیره. درک این مفهوم در ابتدای کار، کمی سخت است، پس اجازه دهید که مثال دیگر بیاورم.
بخش Pattern بازنویسی قانونی معمولا با ^ شروع شده و با علامت $ پایان می‌یابد. این ترتیب باعث می‌شود شروع و پایان الگوها، یکسان باشند. این دو نشانه انتخاب بوده‌اند و حذف یا قرار دادن آنها می‌تواند تأثیرات متفاوتی داشته باشد. اگر تنها ^ در شروع استفاده شده باشد، Pattern ما باید در شروع URL نشان داده شود. اگر هر دو نشانه استفاده شوند، Pattern ما می‌تواند در هر جایی داخل URL نشان داده شود. برای اینکه Pattern دقیقا در جایی که م‌ خواهیم نشان داده شود، ما باید ^ را طوری حذف کنیم که Pattern تنها در انتهای URL نشان داده شود. این مسئله در ادامه آموزش نیز صدق می‌کند.
قدم بعدی نقطه (.) است. نقطه در تعیین ترتیب عبارت‌های ریجکس استفاده می‌شود و "هر حرف تک" را نشان می دهد. از انجا که این بدین معنایی نیست که در home.html استفاده کرده‌ام، باید به تجزیه کننده میگفتم که این نشانه (.) را نادیده بگیرد. این کار را با اضافه کردن یک \ انجام دادم. که دقیقا در جلوی هر حرفی که باید نایده گرفته شود، قرار می‌گیرد. از آنجا که Destination (مقصد) از تجزیه کننده Regex عبور نمی کند، شما نباید در سمت مقصد دستکاری انجام دهید.
اگر Pattern (الگو) شما درست کار نمی‌کند. احتمالا باید دوباره بررسی کرده و با استفاده از \، از حروف غیر عددی و الفبایی فرار کنید. نشانه‌های ^ $ [ ] ( ) { } ! \ از این موارد هستند. (بلی درست است، اگر در الگوی شما \ وجود داشته باشد، شما باید با استفاده از \، از آن فرار کنید.)
مثال اول بازنویسی قوانین ما به اندازه کافی مفید نبود: این مثال کاربران را به مسیری ارجاع می‌داد، اما استرینگ کواری را بازنویسی نمی‌کرد. ما به قوانینی نیاز داریم که بتوان آنها را در درخواست‌های ورودی متغیر اعمال کرد. بگذارید فرض کنیم که ما هر نوع صفحه‌ای را انتخاب کرده و آن را به index.html ریدایرکت می‌کنیم. این روشی مفید برای ایجاد الگوی کنترل کننده (front controller pattern) است. ما باید قوانین را بدین شکل بنویسیم:
RewriteRule (.+)\.html$ index.html
شما از پرانتز برای تعیین گروه‌ها در عبارت‌های ریجکس خود استفاده می‌کنید. در این مورد، ما گروهی شامل “+.“ را ایجاد کرده‌ایم. نقطه به عنوان "هر حرفی" در نظر گرفته شده و به علاوه به معنای "1 یا تعداد بیشتر" است. پس در کل، Pattern (الگوی) ما یعنی (هر حرفی یک یا تعداد بیشتر)Html. است. این به معنای هر صفحه‌ای با پسوند html است. اگر ما می‌خواستیم پسوند htm را نیز در نظر بگیریم، قانون ما باید بدین صورت تغییر داده می‌شد:
RewriteRule (.+)\.(html|htm)$ index.html
حرف پایپ(|) برای نشان دادن یا (OR) منطقی استفاده می‌شود. این بدین معناست که الگوی ما می‌تواند به صورت "html" یا "htm" پایان یابد.
علامت‌های دامنه (براکت‌ها) نیز بسیار مفید هستند. بگذارید فرض کنیم که ما تنها صفحاتی را می‌خواستیم قبول کنیم که ترکیب حروف الفبایی در URL دارند. پس ما باید قانون را به شکل زیر بنویسیم:
RewriteRule ([a-zA-Z]+)\.html$ index.html
دامنه توسط قرار دادن مقادیر در [] نشان داده می‌شود. شما می‌توانید مقادیری مثل [ABC] (تنها به a، b یا c اجازه می‌دهد) یا می‌توانید دامنه‌هایی مثل [a-g]، [0-9] یا [n-y] را انتخاب کنید. حالا که اساس regex را بیان کردیم، م‌ توانیم الگویی بسازیم که می‌تواند متغیرهای داخل URL بازتاب دهنده "ساختار دایرکتوری" قبول کند.


URL های زیبا
URL مثال قبلی ما چنین شکلی دارد:
http://www.best-food-of-the-iran.com/index.php?operation=top&state=tehran&city=tehran&limit=10
ما می‌خواهیم آن را به این شکل تبدیل کنیم:
http://www.best-food-of-the-iran.com/tehran/tehran/top10.html
اما ما می‌خواهیم از همان بازنویسی قانون برای هر شهر و استانی استفاده کنیم. برای انجام این کار، ما از عبارت‌های ریجکس استفاده می‌کنیم، اما همین طور از متغیرهایی در DESTINATION (مقصد) نیز استفاده می‌کنیم. یعنی از مقادیری در آن استفاده می‌کنیم که از Pattern (الگو) ناشی شده‌اند. هر وقت ما از یک گروه در Pattern استفاده می‌کنیم (گروه ها در پرانتز چپ و راست قرار داده می‌شوند)، استرینگی که در آن گروه یکسان می‌شود، را می‌توان از طریق استفاده از متغیرهایش در Destination دستکاری کرد. بدین روش اگر گروه ما ([a-zA-z]+) با استرینگ "تهران" یکسان است، ما می‌توانیم از آن استرینگ در Destination خود استفاده کنیم.
RewriteRule ([a-zA-z]+)/([a-zA-z]+)/top10\.html$ index.php?operation=top&state=$1&city=$2&limit=10
این کار یعنی بازنویسی URL زیبای ما به URL مورد نیاز در اسکریپت. شما در Destination عبارت‌های state=$1 و city=$2 را مشاهده خواهید کرد. $1و $2 به ترتیب، نشان دهنده عبارت‌های ریجکس در الگوهای اول و دوم هستند. هر دو این نشانه‌ها به استرینگ یکسان مرتبط می‌شوند. در مثال قبلی، URL $1 می‌تواند "استان تهران" و $2 می‌تواند "شهر تهران" باشد.




منبع: دیجی سئو - آموزش ساخت لینکهای مناسب سئو


دریافت فایل پی دی اف: http://fsnet.ir/home/1/files/آموزش ساخت لینکهای مناسب سئو.pdf
 
بالا