در مقاله htaccess. چیست به توضیحات کاملی در مورد فایل htaccess و کاربرد های آن و اینکه این فایل چگونه ایجاد می شود را تشریح کردیم.
یکی از پرکاربردترین استفاده ها ریدایرکت htaccess یا فوروارد htaccess می باشد. در این مقاله برخی از پرکاربردترین کدهای ریدایرکت htaccess می پردازیم.
ریدایرکت http به https در htaccess
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ریدایرکت https با (www (https://www به بدون www
RewriteEngine On RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]
ریدایرکت https به http در htaccess
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ریدایرکت آدرس سایت بدون www به آدرس با www
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
بجای عبارت example.com که نام دامنه میباشد باید آدرس دامنه خودتان را وارد کنید.
ریدایرکت آدرس سایت با www به آدرس بدون www
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]
بجای عبارت example.com که نام دامنه میباشد باید ادرس دامنه خودتان را وارد کنید.
ریدایرکت http به https بجز یک دایرکتوری یا فولدر
<IfModule mod_rewrite.c> RewriteCond %{HTTPS} on RewriteRule ^%{HTTP_HOST}/demo(.*) http://%{HTTP_HOST}/demo/$1 [R=301,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
در مثال بالا نام دایرکتوری مورد نظر را جایگزین demo کنید.
ریدایرکت فقط یک پوشه از سایت بر بستر https
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} folder RewriteRule ^(.*)$ https://www.example.com/folder/$1 [R,L]
در این مثال بایستی folder را با نام پوشه مورد نظر جایگزین نموده و بجای www.example.com نام دامنه مورد نظر را درج کنید.
ریدایرکت ساب دامنه بر روی دامنه اصلی
#Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^sub.domain.com$ [OR] RewriteCond %{HTTP_HOST} ^www.sub.domain.com$ RewriteRule (.*)$ http://domain.com/$۱ [R=301,L]
ریدایرکت یک فایل در htaccess
RedirectMatch 301 /oldurl /newurl
ریدایرکت تمامی آدرس های یک دامنه به یک آدرس خاص
RedirectMatch 301 / /newurl
ریدایرکت 302 در .htaccess
Redirect 302 / http://domain.com/
ریدایرکت دامنه قدیمی به دامنه جدید
RewriteEngine on RewriteCond %{HTTP_HOST} ^ domain.ir [NC,OR] RewriteCond %{HTTP_HOST} ^www.domain.ir [NC] RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301,NC]
نام دامنه قدیمی را جایگزین domain.ir و نام دامنه جدید را جایگزین domain.com کنید.
ریدایرکت یک صفحه به صفحه دیگر
Redirect /old-index.html http://www.mynewwebsite.com/foldername/new-index.html
ریدایرکت دامنه پارک شده به ساب دامنه
RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(www.)?parkdomain.com$ [NC] RewriteRule ^(.*)$ http://maindomain/subdomain [L]
نام دامنه پارک شده را جایگزی parkdomain.com و بجای maindomain/subdomain آدرس ساب دامنه مورد نظر را درج کنید.
ریدایرکت دامنه اصلی به ساب دامنه
Options +SymLinksIfOwnerMatch RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] RewriteRule ^http://sub.domain.com[R,L]
بجای domain و .com نام دامنه و پسوند آن را درج نموده و بجای sub.domain.com نام ساب دامنه مورد نظر را درج کنید.
ریدایرکت webmail
با کد زیر می توانید webmail.domian.com را به domain.com/webmail ریدایرکت کنید.
RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(www.)?webmail.domain.com/$ [NC] RewriteRule ^(.*)$ http:// domain.com/webmail/ [L]
نام دامنه مورد نظر را جایگزین domain.com نمائید.
ریدایرکت ساب دامنه به ip با پورت (Port)
RewriteEngine on RewriteCond %{HTTP_HOST} ^subsonic\.mydomain\.com$ [NC] RewriteRule ^(.*)$ http://ip:4040/$1 [R=301]
ریدایرکت کردن کل ترافیک سرور بر روی https
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
با قرار دادن این کد ها کل ترافیک هاست به https://www.example.com ریدایرکت می شود.
ریدایرکت یک پسوند خاص صفحات سایت به پسوند دیگر
RedirectMatch 301 (.*)\.html$ http://domain.com$1.php
با این کد، صفحاتی نظیر http://domain.com/Page.html به http://domain.com/Page.php ریدایرکت ۳۰۱ می شود.
ریدایرکت دامنه در cPanel
بعد از ورود به سی پنل، از منوی «Domain» روی لینک «Redirects» کلیک کنید.
پنجرهای برای شما باز میشود که اطلاعاتی را از شما میخواهد.
در فیلد اول که با عنوان «Type» مشخص شده، انتخاب کنید که آیا میخواهید یک تغییر مسیر دائمی (301) داشته باشید یا تغییر مسیر شما موقت (302) است.
در فیلد دوم دامنه خود را وارد کنید. مثل تصویر زیر:
فیلد سوم به شما میگوید، اگر میخواهید یک فایل خاص را ریدایرکت کنید (مانند info.html) مسیر آن را در قسمت خالی جلو “/” وارد کنید.
در کادر Redirects to، دامنهای که میخواهید ریدایرکت به آن انجام شود وارد کنید.
در بخش «www. Redirection» نحوه مدیریت ریدایرکتهای www را انتخاب کنید.
این قسمت به شما امکان میدهد نحوه مدیریت تغییر مسیرها را در رابطه با زیر دامنه www پیکربندی کنید. به عنوان مثال، شما میتوانید ریدایرکت را فقط در صورت وجود www اعمال کنید (یا وقتی که نباشد)، یا میتوانید ریدایرکت را بدون توجه به اینکه کاربر در www تایپ کند یا نه، اعمال کنید.
گزینه «Wild Card Redirect» در پایین صفحه مشخص است و با گذاشتن یک تیک میتوان آن را فعال یا غیرفعال کرد.
این گزینه در مواقعی کاربرد دارد که قصد دارید همه صفحات موجود را ریدایرکت کنید. در این صورت همه فایلهای موجود در مسیر تعیین شده به مسیر مقصد ریدایرکت میشوند.
بعد از اینکه تمام تغییرات را طبق آنچه نیاز دارید انجام دادید، برای ذخیره تغییرات روی «Add» کلیک کنید.
سازنده کدهای Htaccess آنلاین
برای ایجاد کد های ریدایرکت Htaccess می توانید از لینک های زیر بهره ببرید.
چنانچه سوالی دارید یا می خواهید در قسمت نظرات آن را مطرح کنید تا پاسخگو شما باشیم. همچنین اگر قصد یادگیری وردپرس را دارید می توانید به مقاله آموزش وردپرس مراجعه کنید.
23 دیدگاه. دیدگاه تازه ای بنویسید
سلام
در رابطه با کد زیر برای ریدایرکت دامنه قدیمی به جدید:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ domain.ir [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain.ir [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301,NC]
در صورتی که دامنه جدید با پروتکل https با شد فقط خط آخر تغییر می کند؟ در این صورت تغییرات به شکل زیر خواهد بود؟:
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301,NC]
با تشکر از پاسخ شما
بله بهمین صورت تغییر می کند
با سلام
ممنون از مطلب خوبتون
سوالم اینه که میخوام آدرسهایی با فرمت http://www.myWebUrl.com/main/file.php?id=2 رو به صورت http://www.myWebUrl.com/main/file/2 تو نوار آدرس نشون بدم. ( به عبارت دیگه میخوام از http://www.myWebUrl.com/main/file/2 ریداریکت کنم به http://www.myWebUrl.com/main/file.php?id=2 )
اگه ممکنه راهنمایی کنید
ممنون
سلام، از طریق پیوند های یکتا اقدام کنید.
سلام
بفرمایید چطور https و www را به این فایل اضافه کنیم ؟ جای این قسمت در مطلب خوبتون خالیه
در ضمن ، این کد که در هاست وجود داره را رها کنیم ، یا باید دستخوش تغییرات بشه ؟>
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
سلام، این کد باشد و داخل یک خط جدید موارد ذکر شده را ایجاد کنید.
با این ریدایرکت http به https همه ادرس ها تغییر یکنه و همه با هم تییر میکنه ؟
بله
سلام و درود بابت اموزش خوبتون
من اگر که بخوام یک سری صفحات را به صفحات دیگری ریدایرکت کنم از کدام کد باید استفاده کنم ؟؟
سلام. من میخوام کل ادرس های یک دامنه و صفحه اصلیش رو به صفحه اصلی یک ساید دیگه ریدایرکت کنم . کدش چطور میشه ؟ هر چی گشتم چیزی پیدا نکردم !
سلام
از کد درج شده در بخش “ریدایرکت تمامی آدرس های یک دامنه به یک آدرس خاص” استفاده نمایید.
با سلام فایل htaccess سایتم خیل کد دارد و شلوغ است این کدریدایرکت را کجا قرار دهیم ؟؟
و اینکه در این کد اگر ادرس سایت اصلی httpsباشد باید در خط اخر اعمال شود یا کد دیگری نیاز است؟؟؟
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
با سلام
شما می توانید این کد را در ابتدای فایل htaccess قرار دهید
سلام.وقت بخیر.
ببخشید من تازه کار هستم و برای فعالسازی گواهی SSL روی سایت با راهنمایی همکاراتون به این صفحه رسیدم. متأسفانه چندبار تلاش کردم و کد قسمت (ریدایرکت http به https در htaccess) رو توی فایل کپی کردم و فایل رو هم ذخیره کردم اما علامت قفل قبل از آدرس سایتم نمیاد. مجبور شدم از افزونه SSL که همکاراتون لینکش رو فرستادن، استفاده کنم.
و یک سؤال محل نوشتن این 3 خط کد اهمیت دارد که کجا باید باشه و خط اول الزامی داره که حتماً نوشته بشه؟! من هر دو حالت رو انجام دادم و جواب نگرفتم.
ممنون میشم اگه منو راهنمایی کنین. دوست داشتم دستی این کار رو بکنم. تا بتونم مابقی تغییرات رو انجام بدم.
با تشکر
سلام و وقت بخیر.
من میخوام آدرس با www سایتم رو به بدون www ریدایرکت کنم. کد داخل این صفحه و هرچی کد مرتبط توی صفحات دیگه رو امتحان کردم ولی هیچکدوم کار نکرد. مشکل از کجا ممکنه باشه؟
ممنون میشم راهنمایی کنید
سلام
به این صورت عمل کنید:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]
بهتر نبود مطالب کمی ساده و روان تر برای کسانی که آشنایی ندارند در این مقاله توضیح داده میشد از اول شروع این مقاله کمی مرحله به مرحله جلو میرفتید یا حداقل این همه کد با توضیح چند کلمه ای زیرش باید کپی پیست بشه؟در اول کد های صفحه یا اخرش
موقع فروش هاست و سرور فقط گفته میشه گواهی با ما …
نمیگید این همه مراحل پیچیده داره ک با خودمونه
سلام و ممنون از نظرتون
خیلی از مقالههای ما در دست ویرایش هستن و به زودی با توضیحات بهروز و کاملتری در خدمتتون خواهیم بود.
اگر دوست داشتید به مطالب جدید ایران سرور سر بزنید
ممنون ، برای HSTS کدهاشو اگر بزارید خیلی خوب میشه
با سلام
از خدمات ایران سرور کاملا رضایت دارم
و از مطالب بینظیر و تخصصی کمال تشکر و قدر دانی را دارا میباشم .
سپاس از لطفتون
با آرزوی موفقیت
سلام
از مطلب جامعی که ارائه کردید خیلی ممنونم
یه کد ریدایرکتی میخواستم که توی این مثال ها نتونستم پیدا کنم.
در واقع لینک های من به این شکله:
لینک قدیم:
http://subdomin.mydomin.com/product/123/name
لینک جدید:
http://subdomin.mydomin.com/subproduct/123/456/name
(منظور از 123 آیدی محصوله و 456 هم آیدی subdomin هست و یه عدد ثابته)
در واقع توی لینک جدید product به subproduct تغییر کرده و توی لینک جدید عدد ثابت آیدی سابدامنه اضافه شده)
لطفا بفرمایید که با چه کدی لینک قدیم رو به لینک جدید ریدایرکت کنم؟
بازم از راهنماییتون سپاسگذارم
سلام آقا محمد، ممنون از شما
اگر از وردپرس استفاده میکنید از افزونه 301 redirect میتونید استفاده کنید
RewriteEngine On RewriteCond %{HTTP_HOST} ^olddomain\.ir$ [OR] RewriteCond %{HTTP_HOST} ^www\.olddomain\.ir$ RewriteRule (.*)$ https://newdomain.com/$1 [R=301,L]
از طریق htaccess هم امکان راه اندای چنین چیزی هست