تغییر مسیر دامنه به روی یک فولدر با htaccess

daskhatmin فواد طهماسبی
7,293 بازدید
تغییر مسیر دامنه به روی یک فولدر با htaccess

“بعضی وقها انجام دادن کارهای آسون خیلی سخت به نظر میرسه در حالی که به راحتی میشه اون کار رو انجام داد”. امروز میخوام یکی از این کارها رو آموزش بدم. همونطور که از عنوان مطلب مشخصه، میخواهیم با نحوه تغییر مسیر (Redirect) یک دامنه به روی یکی از فولدرهای مربوط به همون دامنه،آشنا بشیم.
این کار زمانی به درد میخوره که مثلا شما میخواهید وردپرس رو (یا هر اسکریپت دیگه) بر روی یکی از فولدرهای هاست (مثلا blog/) نصب کنید و زمانی که آدرس اصلی (مثلا yourdomain.com) فراخوانی شد، کاربر به این فولدر تغییر مسیر داده بشه ( که میشه yourdomain.com/blog) و یا هر کاربرد دیگه که تو ذهنتون هست. برای انجام این کار باید به صورت زیر عمل کنید:

ابتدا باید فایلی با نام “htaccess.” در فولدر public_html ( که ROOT هم نامیده میشه) ایجاد کنید. سپس کد زیر رو که سازگار با موتورهای جستجو هم هست رو در داخل این فایل کپی کنید:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?YourDomain.com$
RewriteRule ^(/)?$ blog [L,R=301]

تغییراتی که شما باید در کد بالا ایجاد کنید، یکی نام دامنه شماست (به جای yourdomain.com) و دیگری فولدر مورد نظر شماست (به جای blog). با استفاده از این کد تمام درخواستهای دامنه به فولدر تعیین شده تغییر مسیر پیدا میکنه.

 


منبع: Site5.com

daskhatmin

فواد طهماسبی

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

14 دیدگاه برای “تغییر مسیر دامنه به روی یک فولدر با htaccess”

  1. فرهاد گفت:

    یه هفته یه هفته جواب کامنتا رو میدین؟
    چند روز پیش کامنت گذاشتم که در صورتیکه برعکس باشه و ریدایرکت از ساب فولدر به دامنه ی اصلی باشه باید از چه کدی استفاده کرد.
    برای مثال:
    mysite.ir/folder این فولدر و لینکهای بعدش همچونmysite.ir/folder/content ریدایرکت بشن به mysite.ir و این فولدر حذف بشه. در واقع لینک قبلی میشه mysite.ir/content
    ممنون میشم جواب بدین.

    1. سلام، عذر میخوام،‌ یه مدتیه فرصت نمیکنم جواب بدم
      این کد رو تو فایل .htaccess که روت قرار داره وارد کنید. ولی دقت کنید که ریدارکت ۳۰۱ برای همه لینک های دایرکتوری folder اتفاق میافته.

         
      RewriteEngine on
      RewriteRule ^folder/(.*)$ /$1 [R=301,L]
       
      1. فرهاد گفت:

        مرسی که جواب دادین.
        کاملاً جواب داد، خیلی وقت بود منتظر بودم ولی ارزشش رو داشت. سایتتون عالیه امیدوارم بیشتر روش کار کنید.

  2. فرهاد گفت:

    سلام و عرض ادب
    در صورتیکه قضیه برعکس باشه چی؟
    لینکها از ساب فولدر به دامنه ی اصلی ریدایرکت بشن.
    مثال: mysite.com/folder ریدایرکت بشن به mysite.com

  3. منصور گفت:

    ضمن تشکر از آموزش کاربردی
    چگونه همه آدرس های یک فولدر از یک دامنه را به یک دامنه جدید ریدایرکت کنیم بطوریکه مابقی آدرسها باقی بماند؟ (فقط آدرسهای /folder/ ریدارکت بشه)
    مثلا
    domain1.com/folder/links ریدارکت به domain2.com/links

  4. تربت نیا گفت:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www.)?example.com$
    RewriteCond %{REQUEST_URI} !^/my_subdir/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /my_subdir/$1
    RewriteCond %{HTTP_HOST} ^(www.)?example.com$
    RewriteRule ^(/)?$ my_subdir/index.php [L] 
    
  5. احسان گفت:

    اگر بخوایم زمان هم در ریدایرکت httaccess تعریف کنیم به چه صورت هست ؟
    مثلاْ n ثانیه بعد انتقال انجام بشه.

    با تشکر

  6. رضا ساداتی گفت:

    چه تنظیماتی در آپاچی باید انجام بشه؟ من در سی پنل ریدایرکت انجام دادم

  7. رضا ساداتی گفت:

    سلام
    ببخشید من یه سوال داشتم که خیلی وقته دنبال جوابشم اما هنوز نفهمیدم.من یه آدرس با اسم انگلیسی داشتم که در گوگل شناخته شده اما می خوام به فارسی تغییر نامش بدم وقتی این کارو کردم و ریدایرکت رو انجام دادم دیگه لینک انگلیسی رو نمیشناسه و 404 میده آیا این کار من درسته و امکان چنین ریدایرکتی وجود داره

    1. فؤاد طهماسبی گفت:

      احتمالا ریدایرکت رو درست انجام ندادید. و اینکه احتمالا مشکل از کاراکترهای فارسی در دستور ریدایرکت بوده. تو آپاچی تنظیم کردید؟

  8. امید گفت:

    سلام خیلی ممنون بابت این آموزش جالب ، اما میخواستم بگم من انجام دادم اما از طرف سرور ارور دریافت میکنم اگه میشه کمک کنید من قصد دارم وقتی آدرس دامنه enter میشه به جای اینکه به صفحه index of رجوع بشه به صفحه مورد نظر من homepage بره ،ممنون میشم از راهنماییتون:)

    1. فؤاد طهماسبی گفت:

      خواهش میکنم،
      همونطور که گفته شده، این کد باعث میشه با وارد کردن دامنه به جای root بره به یه پوشه خاص مثل (blog). فکر میکنم منظور شما اینه که بره به یه صفحه خاص نه پوشه. اگر هم به پوشه میرید و اونجا Index Of رو میبینید، اسم فایل اصلی رو Index.html بذارید.

      1. امید گفت:

        بله منظورم این هست که وقتی اسم دامنه رو وارد میکنیم در مرورگر بره به صفحه اصلی من بدون اینکه
        http://www.mysite.com/home ظاهر بشه ، می خوام این باشه:
        http://www.mysite.com
        در واقع اون/هوم هم اضافیه
        بازهم ممنونم از بابت راهنماییتون واقعا سایت مفید و آموزنده ای دارید.:)

      2. فؤاد طهماسبی گفت:

        سلام، شما درواقع یه جورایی برعکس این آموزش رو میخواید. یعنی وقتی url پوشه رو وارد میکنیم بره به دامنه اصلی.
        این کار رو با php میشه انجام داد.

        header('location: ../index.php');
        

        به جای index.php هر فایلی که تو root مد نظر هست رو وارد کنید.
        فقط دز نظر بگیرید که اینطوری تمام درخواستهای به سمت url به root منتقل میشن. ولی منظور من از آموزش بالا اینه که شما دو دامنه دارید و میخواهید یکی (مثلا yourdomain.ir) بره به yourdomain.com/fa و نسخه دیگری از سایت رو نمایش بده ولی yourdomain.com همون root رو نمایش بده.

دیدگاه‌ها بسته شده‌اند.