گروه نرم افزاری چابک > طراحی و توسعه > htaccess > ریدایرک یک دامنه به دامنه دیگر
ریدایرک یک دامنه به دامنه دیگر

ریدایرکت یک دامنه به دامنه دیگر با استفاده از htaccess

ریدایرکت یک دامنه به دامنه دیگر به سادگی و با استفاده از کنترل پنل هاست یا تنظیمات htaccess قابل انجام است.

در صورتی که نیاز باشد یک دامنه (به طور مثال دامنه olddomain.ir) متصل به وب سایت به دامنه اصلی سایت(به طور مثال newdomain.com) ریدایرکت شود. از قطعه کد زیر در فایل .htaccess موجود در پوشه روت وب سایت استفاده می شود. لازم به ذکر است به جای olddomain در قطعه کد زیر نام دامنه ای که قرار است منتقل شود و به جای newdomain در قطعه کد زیر نام دامنه اصلی که قرار است ادرس مورد نظر ما به آن منتقل شود را وارد می کنیم.

#ir to com redirect
RewriteCond %{HTTP_HOST} ^olddomain\.ir$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.ir$
RewriteRule ^/?$ "http\:\/\/www\.newdomain\.com\/" [R=301,L]

 

 اهمیت: بالا، در صورت وجود چند دامنه متصل به یک وب سایت

محل استفاده: فایل htaccess داخل پوشه اصلی وب سایت

دلیل استفاده:

  • انتقال یک یا چند دامنه متصل به وب سایت به دامنه اصلی (مانند انتقال خودکار دامنه .ir وب سایت به .com
  • انتقال دامنه قدیمی به دامنه جدید
  • باز شدن تمام ادرس های انتخابی بر روی دامنه اصلی(ادرس مورد نظر) برای سایت هایی با چند نام و ادرس و پیشگیری از محتوای تکراری

 

بیشتر بخوانید!

ریدایرکت همه ادرس های داخل یک پوشه به روت

منبع و اطلاعات بیشتر:

راهنمای بازنویسی آدرس ها در سرور آپاچی

13 دیدگاه در “ریدایرک یک دامنه به دامنه دیگر

  1. سلام خسته نباشید ببخشید من دامنم رو ریدایرکت کردم و یک مشکلی دارم ممنون میشم راهنمایم کنید.
    من دامنه ریدایرکت شده رو با olddomain.ir که میزنم ریدایرکت میشه ولی وقتی با اس اس ال میزنم ریدایرکت نمیشه مثلا https://olddomain.ir ممنون میشم راهنمای کنید که چجوری این کار را انجام بدم و هاستم اس اس ال رایگان داره.

      1. اگه نیاز به ریدایرکت با www ندارید اون رو از کد بالا👆حذف کنید یا به عبارتی 👇

        RewriteCond %{HTTP_HOST} !^olddomain\.ir [NC] 
        RewriteCond %{HTTPS}s ^on(s)|
        RewriteRule ^ http%1://newdomain.com%{REQUEST_URI} [L,R=301]
        

        پارامتر REQUEST_URI هم اگه نخواستید ریکوئست های ارسال شده به دامنه قدیمی یا دامنه پوینتر هم ریدایرکت بشه حذف کنید که بهتره اینکار صورت نگیره و همه ریکوئست ها دقیقا و عینا‌ به دومین جدید ریدایرکت بشن

  2. با سلام و عرض خسته نباشید
    میخوایم یک سایت که اس اس ال داره را به یک سایت دیگر که اس اس ال داره ریدایرکت کنیم میتونید بهمون کمک کنید

    1. سلام
      اینکار بسیار ساده است. فقط دقت کنید که هر دو سایت باید ssl ولید و مربوط به خودشون رو داشته باشن. در غیر اینصورت ریدایرکت با خطای ssl در مرورگر مواجه میشه. اگه add-on روی یه هاست ایجاد کردید و ssl ولید برای اون ندارید به سادگی نمیتونید ریدایرکت رو انجام بدید و با خطا مواجه خواهید شد.
      در صورتی که هر دو سایت ssl نصب شده رو دارن کافیه که از کد زیر در htaccess سایت قدیمی که قراره به سایت جدید ریدایرکت بشه استفاده کنید. در اینصورت همه ریکوئست ها به سایت جدید منتقل میشن. فرق هم نداره ریکوئست http باشه یا https و قطعه کد زیر هر دو رو پشتیبانی میکنه
      باز ما دقیق نمیدونیم شما از چه وب سروری استفاده میکنید و تنظیمات به چه شکلی صورت گرفته. کد زیر روی وب سرورهای apache و litespeed تست شده.

      RewriteEngine On
      RewriteCond %{HTTP_HOST} !^www\.olddomain\.ir [NC] 
      RewriteCond %{HTTPS}s ^on(s)|
      RewriteRule ^ http%1://www.newdomain.com%{REQUEST_URI} [L,R=301]
      

      یه روش ساده دیگه هم هست که برای ریدایرکت ادرس های یکتا استفاده میشه ولی با کمی تغییرات میشه به عنوان ریدایرکت کلی تمام ریکوئست ها و تصاویر و فایل ها و ….. ازش استفاده کرد. اون رو هم میزارم شما تست کنید.
      کافیه کد زیر رو در htaccess سایت قدیمی قرار بدید و جای newdomain ادرس جدید رو وارد کنید.

      RedirectMatch 301 /(.*) https://www.newdomain.org/$1
      

      اگه به اطلاعات بیشتری هم نیاز دارید صفحه زیر به شما کمک میکنه و توضیحات مفیدی در اون ارائه شده
      https://moz.com/learn/seo/redirection
      موفق باشید

  3. سلام وقت بخیر
    من چندین بار این کد را امتحان کردم ولی یک مشکلی دارم. من برای دامنه .com یک SSl گرفتم ولی دامنه .ir ندارد. با هر روش که دامنه ir رو ریدایرکت میکنم روی .com؛ وقتی آدرس زیر رو می زنم ؛ سایت ریدایرکت نمی شود»
    http://site.ir
    https://site.ir
    ولی با آدرس زیر ریدایرکت میشه»
    http://www.site.ir
    میشود راهنمایی کنید.ممنون

    1. دقیقا کدی که بکار گرفتید رو ارسال کنید بررسی کنیم
      با این حال اگه وب سرور اپاچی هست کد زیر باید روی هر دو حالت کار کنه، یعنی هم www و هم بدون www رو ریدایرکت کنه روی دامنه جدید

      RewriteCond %{HTTP_HOST} ^olddomain\.ir$ [OR]
      RewriteCond %{HTTP_HOST} ^www\.olddomain\.ir$
      RewriteRule ^/?$ "http\:\/\/www\.newdomain\.com\/" [R=301,L]
      

      اگه www ریدایرکت میشه بدون www هم باید ریدایرکت بشه، ممکنه مرورگر یا مودم ادرس رو کش کرده باشه و با مرورگر دیگه تست کنید مشکلی نباشه یا با نت دیگه. از سرویس انلاینی مثل gtmetrix استفاده کنید یا سرویس های دیگه و ببینید ریدایرکت صورت میگیره یا خیر. حتی ادرس رو همینجا قرار بدید ما هم میتونیم تست کنیم و نتیجه رو خدمتتون بگیم
      در اخر اگه روی دومین قدیمی ssl ولید ندارید و از هاست اشتراکی استفاده میکنید و add-on ایجاد کردید نمیتونید ریدایرکت رو انجام بدید و مرورگر خطای ssl میده، به هر حال همه چی بستگی به وب سرور، تنظیماتش و رول های مورد استفاده شما داره. باید توضیح دقیقی بدید تا بشه راهنمایی کرد
      موفق باشید

      1. اول که بسیار بسیار ممنونم که وقت گذاشتید و جواب دادید. با این کد که گذاشته بودید، الان آدرس زیر هم ریدایرکت میشه:
        http://old.ir
        ولی هنوز آدرس زیر ریدایرکت نمیشه:
        https://old.ir
        ————
        دامنه ir که می خواهم ریدایرکت بشه ،اصلا SSL نداره. فقط دامنه .com هست که SSL داره.
        دامنه add-on تعریف نشده و داخل خود بخش domain هست و دامنه اصلی .com تعریف شده.
        با مرورگرهای دیگه هم تست کردم، نشد.
        بازهم ممنون از وقتی که گذاشتید

        1. سلام
          اگه روی دامنه ای که تمایل به ریدایرکتش دارید. مثل همین دامنه دات آی آر که ssl نداره قاعدتا نمیتونید ریدایرکت با https رو انجام بدید. حتما باید روی دامنه .ir هم اس اس ال داشته باشید که بتونید با https ریدایرکت کنید در غیر اینصورت اصلا امکان چنین چیزی وجود نداره که در مرورگر https رو وارد کنید و بدون داشتن ssl ولید ریدایرکت صورت بگیره. یا مرورگر خطا میده یا اینکه کلا تایم اوت صورت میگیره(با توجه به باز بودن یا نبودن پورت ۴۴۳ سرور).
          راه حل: به راحتی برای دامنه ir یه اس اس ال lets encrypt که رایگان هست تهیه کنید و نصب کنید و مشکل ریدایرکتتون حل میشه. البته نیاز به تغیراتی در کد .htaccess هست که بالاتر در کامنت ها اورده شده. اگه نیاز به توضیح بیشتری هست در خدمتم.
          موفق باشید

  4. سلام من دامنه .com و .ir رو خریدم و روی دامنه کام سایت بالا اوردم و می خواهم ای ار رو پاک دامین کنم و ریدایرکت بشه به دات کام د فایل htaccses
    لطفا کد رو می تونید بدین

    1. سلام
      شما نسبت به کنترل پنلتون که cpanel یا directadmin هست میتونید دامنه رو پارک کنید، گزینه aliases یا domain pointer یا parked domain رو در کنترل پنل پیدا کنید، در سی پنل در قسمت domains گزینه aliases هست و انتخابش کنید یه صفحه باز میشه که نوشته Create a New Alias و دامنه ای که تمایل دارید پارک کنید رو وارد کنید و add رو بزنید، بعد از اضافه شدن گزینه manage redirect رو انتخاب کنید که تنظیماتش هم ساده است و دامنه ای که تمایل دارید ریدایرکت بشه رو وارد کنید و تمام. ضمنا دقت کنید دی ان اس رو باید روی دومینی که پارک میکنید هم ست کرده باشید
      در دایرکت ادمین هم در قسمت advanced feature گزینه domain pointer رو انتخاب کنید و ادرس دامنه که تمایل دارید ریدایرکت بشه رو وارد کنید و htaccess رو هم بررسی کنید و در صورت لزوم ریدایرکت رو طبق کدهای بالا ایجاد کنید و تمام
      در سی پنل نیاز به htaccess ندارید و تنظیمات خودکار ایجاد میشه و نیاز نیست دستی کدی رو وارد کنید
      اگه پاسخ بنده مشکل شما رو حل نکرد توضیح بیشتری بدید که دقیقا تمایل به چه کاری دارید و کنترل پنل یا وب سرورتون چی هست تا کمکتون کنم

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

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