خانهعمومیمیزبانی وب

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

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

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

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

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

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


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

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


RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/?$ “example.com/” [R=301,L]

123 RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com$ RewriteRule ^/?$ example.com/” [R=301,L]

توضیح .htaccess.301 redirect :

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


RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]

1 RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]

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

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

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

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


RewriteRule ^(.*)$ www.example.com/$1 [L,R=301]

1 RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

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

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

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


RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^$ example.com/index.php [L,R=301]

123 RewriteEngine On RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule ^$ http://example.com/index.php [L,R=301]

توضیح .htaccess.301 redirect :

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


RewriteCond %{HTTP_HOST} !www.example.com$

1 RewriteCond %{HTTP_HOST} !www.example.com$

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

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

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

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


RewriteRule ^(.*)$ www.example.com/$1 [L,R=301].

1 RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301].

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

بخش بعدی 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 که روی دامنه ی قدیم می باشند:


RewriteEngine On
RewriteCond %{HTTP_HOST} !oldexample.com$ [NC]
RewriteRule ^(.*)$ www.newexample.com/$1 [L,R=301]

123 RewriteEngine On RewriteCond %{HTTP_HOST} !oldexample.com$ [NC] RewriteRule ^(.*)$ http://www.newexample.com/$1 [L,R=301]

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


RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !oldexample.com$ [NC]
RewriteRule ^(.*)$ newexample.com/$1 [L,R=301]

1234 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !oldexample.com$ [NC] RewriteRule ^(.*)$ http://newexample.com/$1 [L,R=301]
  • نحوه افزودن علامت اسلش “/” :

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

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

Example.com/google/

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

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


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ example.com/$1/ [L,R=301]

12345 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !f RewriteCond %{REQUEST_URI} !example.php RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]

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

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


RewriteCond %{REQUEST_FILENAME} !-f

1 RewriteCond %{REQUEST_FILENAME} !f

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


RewriteCond %{REQUEST_URI} !example.php

1 RewriteCond %{REQUEST_URI} !example.php

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


RewriteCond %{REQUEST_URI} !(.*)/$

1 RewriteCond %{REQUEST_URI} !(.*)/$

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


RewriteRule ^(.*)$ example.com/$1/ [L,R=301]

1 RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]

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


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


(2) فایل htaccess. در هاست
آموزش ریدایرکت آدرس های سایت از طریق فایل htaccess. در هاست - پارس


(3) ریدایرکت آدرس های سایت از طریق فایل htaccess مقالات آموزشی
در این بخش میتوانید مقالات آموزشی ماند نحوه دسترسی به کنترل پنل نحوه هاست کردن دامنه در کنترل پنل و را مشاهده نمایید .


(4) نحوه ریدایرکت یک آدرس به آدرس دیگر در هاست سی پنل
آموزش ریدایرکت یک آدرس به آدرس دیگر در هاست سی پنل به همراه بررسی تفاوت ریدایرکت301 با ریدایرکت 302 در سی پنل.


(5) url از طریق htaccess
آموزش ریدایرکت آدرس های url از طریق htaccess


(6) آموزش ریدایرکت آدرس سایت از HTTP به HTTPS
بنابراین این آموزش محدود به کنترل پنل خاصی نیست و در کلیه ی هاست های لینوکسی که از فایل .htaccess بهره میگیرند میتوانید از این آموزش استفاده کنید. توجه داشته باشید که فایل.htaccess به علت داشتن نقطه در ابتدای نامش یک فایل مخفی


(7) ریدایرکت url از www به بدون www و
ریدایرکت url از www به بدون www و بالعکس در htaccess


(8) فایل .htaccess
آموزش ریدایرکت سایت از بدون www به www با فایل .htaccess تم فارس


(9) ریدایرکت url از www به بدون www و بالعکس در htaccess
04.11.2015 بنابراین این آموزش محدود به کنترل پنل خاصی نیست و در کلیه ی هاست های لینوکسی که از فایل .htaccess بهره میگیرند میتوانید به سادگی از این آموزش استفاده کنید. توجه داشته باشید که فایل.htaccess به علت داشتن نقطه در ابتدای نامش یک


(10) آموزش کامل ریدایرکت 301 در وردپرس جوملا
آموزش کامل ریدایرکت 301 در وردپرس جوملا سی پنل و با کد مثال

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

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

پانزده + نه =

دکمه بازگشت به بالا