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

آموزش ریدایرکت آدرس های 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 ^(.*)$ http://www.example.com/$1 [L,R=301]

123RewriteEngine 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 ^/?$ “http://example.com/” [R=301,L]

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

توضیح .htaccess 301 redirect :

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


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

1RewriteCond %{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 ^(.*)$ http://www.example.com/$1 [L,R=301]

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

قسمت ^(.*)$ ترفند شگفت انگیز کوچکی می باشد. می توانید معنی علامت “.” را به یاد آورید؟ اگر نه، این کاراکتر می توانید به معنی «هرکاراکتر دیگری ، نامشخص» باشد (ولی فقط 1 کاراکتر) . بنابر این (.*) به این معنی می باشد که شما می توانید تعداد زیادی از کاراکتر ها را داشته باشید ، نه فقط یکی، این چیزیه که ما نیاز داریم زیرا ^(.*)$ شامل url های درخواستی بدون دامین می باشد. بخش بعدی http://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 ^$ http://example.com/index.php [L,R=301]

123RewriteEngine 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$

1RewriteCond %{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 ^(.*)$ http://www.example.com/$1 [L,R=301].

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

قسمت ^(.*)$ ترفند شگفت انگیز کوچکی می باشد. می توانید معنی علامت “.” را به یاد آورید؟ اگر نه، این کاراکتر می توانید به معنی «هرکاراکتر دیگری ، نامشخص» باشد (ولی فقط 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:


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

123RewriteEngine 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 ^(.*)$ http://newexample.com/$1 [L,R=301]

1234RewriteEngine 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 ^(.*)$ http://example.com/$1/ [L,R=301]

12345RewriteEngine 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

1RewriteCond %{REQUEST_FILENAME} !f

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


RewriteCond %{REQUEST_URI} !example.php

1RewriteCond %{REQUEST_URI} !example.php

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


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

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

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


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

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

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



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


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


دوباره نویسی آدرس های اینترنتی URL Rewrite در htaccess
دوباره نویسی آدرس های اینترنتی یا URL Rewrite تکنیکی است که در دانش سئو علم بهینه سازی برای موتورهای جستجو یا Search Engine Optimization توصیه شده و امروزه در بسیاری از سرویس های مبتنی بر وب مورد استفاده قرار می گیرد اغلب آدرس های


آموزش ریدایرکت پیوندهای یکتا با استفاده از فایل .htaccess
27.01.2019 اما اصلا فایل .htaccess چیست چگونه می توانیم با استفاده از فایل .htaccess لینک های وب سایت مان را ریدایرکت کنیم یا چطور این کار امکان پذیر است با ما همراه باشید تا در ابتدا به این بحث بپردازیم که


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


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


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


ریدایرکت Redirect در دایرکت ادمین
گاهی میخواهیم بنا به دلایلیاعم از تغییر آدرس سایت و یا seo کاربر را به آدرسی جدید هدایت کنیم.برای مثال کاربر آدرس قبلی را وارد کرده و ما با استفاده از ریدایرکت او را به آدرس جدید هدایت میکنیم بدون آنکه اختلالی در کار


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


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

برچسب ها

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

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

20 + 18 =

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