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

آموزش ریدایرکت آدرس های url سایت از طریق فایل htaccess. در هاست

آموزش ریدایرکت آدرس های سایت از طریق فایل htaccess. در هاست

به طور پیش فرض وب سایت شما با هر دو آدرس www.example.com و example.com در دسترس می باشد. از آنجا که گوگل محتوای کپی را جریمه می کند ، شما باید دسترسی به سایت خود را از یکی از دو آدرس فوق محدود کنید. البته ممکن است موتور های جستجو سایت شما را در هر دو آدرس ایندکس کرده باشند ولی بهتر است از هم اکنون اقدام کنید و سایت خود را از طریق فایل های داخل هاست تنظیم نمایید تا فقط از طریق www یا بدون www در دسترس باشد. فایل اصلی .htaccess شما در پوشه ی Public_Html در بخش File Manager هاست قرار دارد.

  • ریدایرکت به example.com یا از www.example.com:

بخش اول : چطور می توانم تمامی لینک های سایت را از www.example.com به example.com ریدایرکت کنم؟

ایجاد ریدایرکت 301 دائمی برای تمامی درخواست های http به منظور استفاده از هر دو آدرس www.example.com یا example.com:

  • مثال 1: ریدایرکت com به www.example.com:
 

  • مثال 2: ریدایرکت example.com به example.com:
 

توضیح .htaccess 301 redirect :

نگاهی به مثال 1 می اندازیم، انتقال example.com به www.example.com . خط اول به apache فرمان می دهد ماژول rewrite را Start کند. خط بعدی :

مشخص می کند که قانون بعدی تنها در صورتی اجرا شود که http host (بدین معنی که url دامنه های درخواستی مشخص شده با علامت !) به صورت www.example.com نباشد.

علامت $بدین معنی می باشد که host با www.example.com به پایان برسد. و نتیجه به این صورت خواهد بود که تمام صفحات از www.example.com با rewrite rule ادامه یابد . همراه با علامت ! در نتیجه هر هاستی که www.example.com نباشد به این دامنه ریدایرکت خواهد شد.

[NC] مشخص می کند که http host به حروف غیر حساس یا Case insensitive باشد. کاراکتر “.” در نظر گرفته نمی شود زیرا این کاراکتر ویژه به صورت معمول نقطه ، به معنی «کاراکتر ناشناخته» می باشد.

خط آخر نیز شرح عملیاتی می باشد که باید اجرا شود:

قسمت ^(.*)$ ترفند شگفت انگیز کوچکی می باشد. می توانید معنی علامت “.” را به یاد آورید؟ اگر نه، این کاراکتر می توانید به معنی «هرکاراکتر دیگری ، نامشخص» باشد (ولی فقط 1 کاراکتر) . بنابر این (.*) به این معنی می باشد که شما می توانید تعداد زیادی از کاراکتر ها را داشته باشید ، نه فقط یکی، این چیزیه که ما نیاز داریم زیرا ^(.*)$ شامل url های درخواستی بدون دامین می باشد. بخش بعدی http://www.example.com/$1 هدف rewrite url را توصیف می کند. این آخرین استفاده ی ما از نام دامنه می باشد که S1 شامل محتوای (.*) می باشد. بخش بعدی نیز مهم می باشد، زیرا ریدایرکت 301 برای ما به طور خودکار می باشد: [L,R=301]

L بدین معنی می باشد که آخرین (Last) قانون (Rule) در این اجرا می باشد. بعد از این rewrite، وب سرور نتیجه را باز خواهد گرداند. R=301 بدین معنی می باشد که وب سرور انتقال دائمی 301 را به مرورگر درخواست دهنده یا موتور جستجوی درخواست دهنده باز می گرداند.

  • ریدایرکت به com/index.php:

شما وب سایتی با نام example.com دارید و می خواهید تمام آدرس های دریافتی تان را به example.com/ به طور مثال example.com/index.php ریدایرکت کنید.

توضیح .htaccess 301 redirect :

کد بالا چه گونه عمل می کند؟ نگاهی به مثال 1 می اندازیم، انتقال example.com به www.example.com . خط اول به apache فرمان می دهد ماژول rewrite را Start کند. خط بعدی :

مشخص می کند که قانون بعدی تنها در صورتی اجرا شود که http host (بدین معنی که url دامنه های درخواستی مشخص شده با علامت !) به صورت www.example.com نباشد.

علامت $بدین معنی می باشد که host با www.example.com به پایان برسد. و نتیجه به این صورت خواهد بود که تمام صفحات از example.com با rewrite rule ادامه یابد . همراه با علامت ! در نتیجه هر هاستی که www.example.com نباشد به این دامنه ریدایرکت خواهد شد.

[NC] مشخص می کند که http host به حروف غیر حساس یا Case insensitive باشد. کاراکتر “.” در نظر گرفته نمی شود زیرا این کاراکتر ویژه به صورت معمول نقطه ، به معنی «کاراکتر ناشناخته» می باشد.

خط آخر نیز شرح عملیاتی می باشد که باید اجرا شود:

قسمت ^(.*)$ ترفند شگفت انگیز کوچکی می باشد. می توانید معنی علامت “.” را به یاد آورید؟ اگر نه، این کاراکتر می توانید به معنی «هرکاراکتر دیگری ، نامشخص» باشد (ولی فقط 1 کاراکتر) . بنابر این (.*) به این معنی می باشد که شما می توانید تعداد زیادی از کاراکتر ها را داشته باشید ، نه فقط یکی، این چیزیه که ما نیاز داریم زیرا ^(.*)$ شامل url های درخواستی بدون دامین می باشد.

بخش بعدی http://www.example.com/$1 [L,R=301] هدف rewrite url را توصیف می کند. این آخرین استفاده ی ما از نام دامنه می باشد که S1 شامل محتوای (.*) می باشد.

بخش بعدی نیز مهم می باشد، زیرا ریدایرکت 301 برای ما به طور خودکار می باشد: [L,R=301]

L بدین معنی می باشد که آخرین (Last) قانون (Rule) در این اجرا می باشد. بعد از این rewrite، وب سرور نتیجه را باز خواهد گرداند. R=301 بدین معنی می باشد که وب سرور انتقال دائمی 301 را به مرورگر درخواست دهنده یا موتور جستجوی درخواست دهنده باز می گرداند.

  • ریدایرکت بازدید کنندگان به سایت جدید:

فرض کنید وب سایتی از قبل دارید که با دامنه ی oldexample.com در دسترس می باشد و وب سایت جدیدی نیز دارید که با دامنه ی newexample.com در دسترس می باشد. در مرحله ی اول باید محتوای وب سایت قبلی خود را به وب سایت جدید کپی کنید. اما آنچه بعد از آن باید انجام شود چیست؟ شما باید ریدایرکت دائمی انتقال 301 از دامنه ی قبلی به دامنه ی جدید انجام دهید که ساده و دارای مزایای زیر می باشد:

  • کاربران به صورت خودکار به دامنه ی جدید منتقل می شوند که دیگر نیازی نیست به آن ها اطلاع داده شود.
  • موتور های جستجو به صورت خودکار به دامنه ی جدید هدایت می شوند و تمامی اطلاعات مرتبط به دامنه ی جدید منتقل خواهد شد. اما این کار ممکن است مدت زمانی به طول انجامد.
  • Google’s PageRank â„¢ نیز به دامنه ی جدید منتقل خواهد شد. همچنین موقعیت صفحات سایر اطلاعات داخلی که در حال استفاده می باشند در نتایج موتور های جستجو تنظیم می گردد. مثل TrustRank .

ایجاد ریدایرکت 301 برای تمامی درخواست های http که روی دامنه ی قدیم می باشند:

  • مثال 1 – انتقال از com به www.newexample.com:
کد فوق در مواقعی مفید می باشد که شما از www.newexample.com بعنوان دامنه ی جدید استفاده کنید (که قبلا توضیح داده شد امکان تعریف دامنه با www یا بدون www وجود دارد) – اگر بیاد نیارید، مثال 2 را مشاهده کنید.

  • مثال 2 – ریدایرکت از com به newexample.com :
  • نحوه افزودن علامت اسلش “/” :

برخی از موتور های جستجو کاراکتر اسلش را از آدرس هایی مثل دایرکتوری ها حذف می کنند. مثل موتور جستجوی yahoo. در هر حال این میتونه منجر به ایجاد مشکلات محتوای تکراری در اثر دسترسی به اطلاعات از طریق چندین URLشود. Apache در قسمت Apache server FAQ اطلاعات بیشتری در این خصوص ارائه کرده است.

اجازه دهید نگاهی به مثال زیر داشته باشیم:

Example.com/google/

در گوگل به صورت example.com/google ایندکس شده است – که نتیجه می تواند در دو آدرس با محتوای مشابه باشد.

راه حل ایجاد یک .htaccess rewrite rule می باشد که یک علامت اسلش به url ها اضافه می کند. مثال – ریدایرکت تمامی آدرس هایی که علامت / ندارند با آدرس هایی که با یک علامت / به اتمام می رسند:

توضیح کد فوق در مورد افزودن علامت / با رول .htaccess rewrite :

خط اول به آپاچی فرمان می دهد که این کد برای rewrite engine از ماژول mod-rewrite آپاچی می باشد. خط دوم دایرکتوری فعلی را بعنوان صفحه ی root ست می کند . اما بخش جالب توجه:

اطمینان از اینکه فایل های موجود بدون علامت / باشند. شما نمی توانید همین کار را با دایرکتوری ها بکنید زیرا این کار می تواند عملیات rewrite را برای دایرکتوری های موجود حذف کند. در خط بعدی

این کد یک url نمونه را از این عمل مستثنی می کند که نباید rewrite شود. این فقط یک مثال است. اگر شما فایل یا آدرسی ندارید که نباید rewrite شود این خط را می توانید حذف کنید. و شرط:

در آخر زمانیکه آدرسی شامل علامت / نباشد این دستور اجرا خواهد شد. هم اکنون نیاز داریم که آدرس های بدون / را به آدرس های با علامت / ریدایرکت کنیم:

ریدایرکت 301 همراه با علامت / در انتها برای تمامی url ها انجام می شود. شما باید بجای example.com نام دامنه ی خود را در تمامی مثال های فوق جایگزین کنید.

آموزش ریدایرکت آدرس های url سایت از طریق فایل htaccess. در هاست
3.5 (69.09%) 22
برچسب ها
هاست ایران میزبان فا

علی یزدان پرست

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

نوشته های مشابه

‫۲۵ نظرها

  1. سلام چطور میتونم تمام یو ار ال های ساب دایرکتوری رو به روت ریدایرکت 301 کنم برای مثال
    mysite.ir/wiki/pid=2056 to mysite.ir/pid2056
    چطور میتونم با چند خط کد کل یو ار ال هامو رو ریدایرکت کنم ؟؟

  2. سلام
    بنده یک سایت دارم که وردپرسی نیست و دو ادرسه هست یعنی به شکل زیر :
    mysite.com
    mysite.com/index.php
    هر دو متحوا یکسانی ارائه میکنند اما دومی تصاویر به دلیل داشتن index.php خراب نشون میده و کلا دو ادرس با متحوا یکسان زیاد جالب نیست . به نظرتون چجوری ریدایرکت کنم ؟
    در ضمن بنده کد ریرایت گذاشتم که به نحوه ای حذف بشه اما مشکل اینجاست دیگه کاربر نمیتونه وارد پنل بشه و یا اخبار ببینیه برای همین باید ریدایرکت کنم . میشه راهنمایی کنید

  3. سلام خسته نباشید
    من از وردپرس روی کنترل پنل پلسک استفاده می کنم و چند تا دامین دارم.
    اما می خوا همه دامین ها به یکی ریدایرکت بشه و نه فقط به صفحه اول مثلا:
    آدرس: http://mydomain.ir/blog به آدرس http://mydomain.com/blog ریدایرکت بشه…
    از افزونه SEO Redirection Free استفاده کردم اما باید برای همه صفحات داخلی سایت ریدایرکت بسازم و صفحات داخلی من خیلی زیاد هستن.
    لطفا یه راهنمایی بفرمائید که من چیکار می تونم بکنم.
    ممنون

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

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

  5. سلام چه طور میتونم از یک دامنه با آدرس ثابت بازدیدکننده رو ریدایرکت کنم به یک دامنه با آدرس متغیر؟
    مثلا آدرس ثابت من user.com هستش سایت روی آدرس abc1.com پیاده شده که هرچندوقت یکبار ف*ی*ل*تر میشه
    بعد آدرس جدید سایت میشه abc2.com اما یه سری از سایتها هستند که داخل کانال تلگرامشون میان یه آدرس مثل
    user.com/p?362 میذارن که این آدرس بازدیدکننده رو میفرسته به آدرس خارج از فیلتر abc2.com/p?362
    خب خودتون هم میدونید که داخل کانال تلگرام ویرایش آدرس ها فقط تا 48ساعت امکانپذیره و بعد اون ویرایش نمیشه که بیایم آدرس جدید بذاریم! از طرفی اگه تعداد پستهای کانال هم زیاد باشه خیلی فرآیند وقت گیری میشه که بخایم دونه دونه Urlهارو ویرایش کنیم.
    حالا میشه راهنمایی کنید چیکار کنم؟

  6. سلام.ببخشید بنده قبلا سایتی داشتم که دارای ssl رایگان بود که مشکلات بزرگی روی سایت پیش اورد الان اون ssl رو غیر فعال کردم و حذف کردم.
    حالا میشه یک کد بدین به من که سایتم از چروتکل https به پروتوکل http ریدایرکت 301 بشه؟؟برای سئو میخام
    ممنون

  7. سلام
    من سایتم رو به تازگی به https منتقل کردم یک کد ریدایرکت 301 میخوام صفحات داخلیم رو که قبلا ایندکس شدن و با http باز میشن به https منتقل بشن. لطفا راهنماییم کنید.

    مدیریت محتوام وردپرسه

  8. من می خوام تمام لینکهای یک سایت ( http https نوشته برگه دسته و … ) همه رو به صفحه اصلی یک سایت دیگر ریدایرکت کنم نمیخوام وقتی از ادرس نوشته ای ریدایرکت شد به همان ادرس نوشته در سایت مقصد برود می خوام از ادرس نوشته به صفحه اصلی سایت مقصد ریدایرکت شود .
    مثال
    a.com/abcd =====>>>b.com
    تمام نوشته ها

  9. سلام و خسته نباشید
    ببخشید یه سوال..
    من یک وب سایتی رو میخوام طراحی کنم که باید نرخ بورس و ارز رو به صورت لحظه ای توش گذاشته بشه آیا همچنی امکانی هست ؟

  10. سلام تشکر از آموزشتون. ریدایرکت صفحه اصلی دامنه به https://www. به درستی کار میکنه. اما صفحات داخلی ریدایرکت نمیشن. مثلا میخوایم صفحات مثل https://domain.com/page-man هدایت بشن به https://www.domain.com/page-man . باید چه کدی قرار بدیم که صفحات داخلی هم مثل صفحه اصلی ریدایرکت بشن به https://www ؟ ممنون

  11. با سلام و عرض ادب
    من جدیدا به یک مشکل برخورد کردم که شاید راه حلش ساده باشه اما جدیدا خیلی اذیت کننده شده.
    توی گوگل وب مستر قسمت کرال هر روزه ارور هایی میبینم که برطرف کردنش رو بلد نیستم
    در انتهای آدرس یوآرال سایتم یه سری اعداد و حروف مشخص یعنی در اکثر آدرس ها همین اعداد هست اضافه شدن که نتیجه خطای 404 داده و وب مستر ارور گرفته مثلا
    sitename.ir/product/makan/b7d0858d41a6c29b873e4aba411e6d04
    در حالی که باید اینجوری باشه
    sitename.ir/product/makan/
    جالب اینه که خود وب مستر در قسمت لینک فرام همین آدرس سالم رو معرفی میکنه. من تمام قسمتها و یوآرال های آدرس سالم رو چک کردم هیچ موردی پیدا نکردم. البته خودم فکر میکنم ممکنه از طرف ورودی های مثل تویتر – فیسبوک- بینگ- یاهو و… باشه
    تمنا میکنم اگه براتون امکان داره راهنمایی بفرمایید چطور میتونم از شر این خطاها نجات پیدا کنم
    با تشکر
    لطفا جواب را به ایمیلم ارسال بفرمایید

    1. سلام و وقت بخیر، لطفا آدرس سایتتون را بفرمایید تا بررسی کنم. در صورتی که از ووکامرس استفاده می‌کنید، از صفحه تنظیمات چک کنید که گزینه مکان پیشفرض مشتری روی حالت بدون مکان پیش فرض باشد.

  12. من یه هاست و دامین با نام مثلا http://www.abc.ir دارم که الانم داره کار میکنه

    حالا یک پوشه جدید تویه هاست ساختم به اسم body که از آدرس http://www.abc.ir/body قابل دستیابی هست

    حالا یک دامین با نام http://www.web.ir ثبت کردم میخوام این دامین ریدایرکت بشه به پوشه body

    البته این رو میخوام از طریق htaccess انجام بدم چون هاستم فقط یک دامین ساپورت میکنه

  13. سلام
    بنده سایتم رو از sample.ir به sample.com ریدایرکت کردم و به درستی انجام شد.
    ولی مشکل اینجاست ک هنوز هم sample.ir/blog هم اگر در آدرس تایپ شود بالا می آید و ریدایرکت به sample.com/b;og نمیشود.

  14. با سلام و خسته نباشی آقا دامنه من روی رزبلاگ هست و دامنه من در گوگل به دو دسته با www و بدون www ظاهر میشه من میخوام بدون www ظاهر شود و در زربلاگ هیچ راهی برای اضافه کردن دستورات بالا نیست اگر امکانش هست کدی یا دستوری فرمایید تا این مشکل من حل بشه با تشکر

    1. سلام، میتونید از کدهای ریدایرکت که با زبان جاوا اسکریپت و… قرار داره استفاده کنید. اما به صورت 301 نیستن و همچنان مشکل duplicate content رو خواهید داشت.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید

بستن
بستن