دستورات متداول ریدایرکت در htaccess
htaccess مخفف دسترسی به متن است. فایل htaccess یک فایل پیکربندی برای کنترل نحوه پاسخگویی وبسرور به ریکوئستهای مختلف است. سرویس مذکور توسط وبسرورهای معروفی مانند آپاچی استفاده میشود. با استفاده از این فایل کارهای مختلفی مانند ریدایرکت، تغییر پسوند فایل و ... را میتوان انجام داد. ما در این مقاله منحصرا مباحث ریدایرکت در htaccess. را توضیح دادهایم.
کاربردهای فایل htaccess.
تنظیمات این فایل برای سئو سایت بسیار مهم و تاثیرگذار هستند پس آشنایی با کاربردهای این فایل و اعمال تنظیمات درست نقش مهمی در سایت شما خواهد داشت. از همین رو در ادامه لیستی از کاربردهای فایل htaccess. را مشاهده میکنید.
- مدیریت ریدایرکت
- اعمال تنظیمات روی URL Rewrite
- مدیریت نمایش خطاهای Apache
- اعمال تنظیمات کش و Expire Date آن
- مدیریت دسترسی فیزیکی فایل و فولدرها
- تعیین پسورد برای یک فایل خاص
- بلاک کردن یک یا چند IP خاص و یا رنجی از IPها
نحوه دسترسی به فایل htaccess.
معمولا این فایل در دایرکتوری public_html هاست قرار داد. پس اگر وارد هاست خود شدید و از بخش File Manager به فولدر public_html مراجعه کنید، این فایل را خواهید دید. البته در نظر داشته باشید اکثر فایلهایی که با (.) شروع میشوند، فایلهای مخفی هستند. پس اگر در مسیر مذکور فایل را پیدا نکردید جای نگرانی نیست.
اگر از کنترل پنل هاست سیپنل استفاده میکنید، احتمال اینکه با این مشکل روبرو شوید بیشتر است چون در سیپنل بهصورت پیشفرض فایلهای مخفی نمایش داده نمیشود. برای رفع این مشکل در فولدر فایل منیجر در بخش بالا سمت راست روی گزینه settings کلیک کنید تا پاپآپ باز شود. در این پاپآپ تنظیمات فایل منیجر را مشاهده میکنید که با کلیک روی تیک Show Hidden Files و ذخیره کردن، فایل htaccess. نمایش داده میشود.
دنیای بزرگ مخاطبای آنلاین رو از دست نده!
نحوه ساخت فایل htaccess.
در بیشتر وبسایتهایی که از سیستم مدیریت محتوایی مانند وردپرس استفاده میکنند این فایل بهصورت خودکار ساخته میشود. اما فرض کنیم به صورت اختصاصی طراحی سایت انجام دادهایم و طبق روال بالا پیش رفتیم و فایل htaccess. نمایش داده نشد. باید چه کاری انجام بدهیم؟
مطمئنا برای انجام کارهایی مانند ریدایرکت در سئو فروشگاه اینترنتی نیاز به این فایل خواهید داشت پس بهتر است نحوه ساخت آن را بهمنظور ریدایرکت در htaccess. یاد بگیرید.
ساختن این فایل پیچیدگی زیادی ندارد. تنها کافی ست مراحل را طبق آموزش پیش بروید و فایل را بسازید. یک فایل متنی ایجاد کنید و آن را با نام htaccess. ذخیره کنید. توجه داشته باشید ابتدای نام فایل باید کارکتر "." را درج کرده و سپس نام htaccess. را درج کنید.
یک روش دیگر هم برای این کار وجود دارد که کمی طولانیتر است. ابتدا یک فایل متنی در notpad ایجاد کنید و آن را با نام htaccess. ذخیره کرده و در هاست خود در مسیر File Manager و سپس public_html آپلود کنید.
تا به اینجای کار با فایل htaccess. آشنا شدیم و نحوه ساختن آن را یاد گرفتیم. همانطور که در ابتدای مقاله اشاره کردیم قصد ما از نوشتن این مقاله آشنایی با کدهای ریدایرکت در htaccess. بود. ریدایرکت انواع مختلفی دارد و بسته به هرکدام قطعه کد متفاوتی باید درج کنید. در ادامه دو ریدایرکت که متدوال هستند را بررسی کردهایم.
دستورات متداول ریدایرکت در htaccess.
ریدایرکت انواع مختلفی دارد که توضیح مفصل راجع به تمام آنها خارج از محوریت این مقاله است پس به توضیحی درباره دستورات متداول ریدایرکت بسنده میکنیم.
بهطور کلی دو نوع ریدایرکت خیلی رایج داریم که ریدایرکت 301 و 302 هستند. عملکرد هر دوی این موارد شبیه به هم است و یک هدف یعنی هدایت کاربر و خزندههای گوگل از یک آدرس قدیمی به آدرس جدید است. اما تفاوتی که این دو ریدایرکت را از هم متمایز میکند، دائمی بودن ریدایرکت 301 است. یعنی اگر قصد دارید یک آدرس صفحه را به صورت دائمی ریدایرکت کنید از ریدایرکت 301 باید استفاده کنید. مثلا قصد دارید آدرسی تحت عنوان https://vediana.com/weblog/ را به طور دائمی به https://vediana.com/blog/ انتقال دهیم.
اما اگر قصد دارید صفحهای را بهصورت موقت ریدایرکت کنید باید از ریدایرکت 302 استفاده کنید. مثلا ممکن است طراحی پورتال انجام داده باشید و بعد از مدتی نیاز به ویرایش و طراحی مجدد یک صفحه پرکاربرد مثلا ثبتنام و یا ورود به پنل کاربری دارید.
برای اینکه اختلالی در کار پیش نیاید و یا ارائه خدمات شما متوقف نشود، بهطور موقت و با استفاده از ریدایرکت 302 کاربران را به صفحه مشابهی برای ثبت اطلاعات هدایت میکنید تا بعد از اتمام طراحی، صفحه را از حالت ریدایرکت خارج کنید.
ریدایرکت ۳۰۱
در این روش آدرس قدیمی برای همیشه به آدرس جدید منتقل میشود و اگر کاربری روی آدرس قدیمی کلیک کند به لینک جدید هدایت میشود و دیگر خبری از آدرس قدیمی نیست. در واقع ریدایرکت 301 برای مواردی مانند حذف صفحاتی با محتوای تکراری، بهبود سئو سایت، رفع مشکل همنوعخواری و این چنین موارد استفاده میشود. در حالت کلی با ریدایرکت 301، گوگل آدرس جدید را ایندکس میکند و ارزش و اعتبار ورتبه لینک قدیمی به لینک جدید تعلق گرفته و بعد از مدتی لینک قدیمی بالکل از نتایج حذف میشود.
اگر قصد تغییر دامنه خود را دارید و یا برای مواردی مانند ریدایرکت لینکهای سایت از http به https دارید بااستفاده از قطعه کدهای زیر اقدام کنید.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.net/$1 [L,R=301,NC]
قطعه کد بالا برای زمانی است که قصد تغییر آدرس دامنه خود را داشته باشید. آدرس www.example.com دامنه قدیمی شما و example.net آدرس دامنه جدید شما محسوب میشود.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
اگر راجع به مبحث بهینه سازی سایت و هزینه سئو کمی تحقیق کرده باشید، حتما با اصطلاح محتوای تکراری آشنا شدهاید. موتور جستجوی گوگل آدرس سایت با www و بدون www را دو سایت مجزا میداند و اگر این موضوع را پیگیری نکنید بهعلت محتوای تکراری مشمول جریمه گوگل خواهید شد.
راهحل رفع این مشکل ریدایرکت است و باید از متخصص سئو خود درخواست کنید تا بااستفاده از قطعه کد زیر ریدایرکت 301 انجام داده و دو آدرس را به یک آدرس واحد هدایت کند.
اگر لینکسازی خارجی سایت شما روی آدرس سایت بدون www انجام شده است و حالا قصد دارید تا تمامی کاربران به آدرس سایت با www روبرو شوند از کد زیر در فایل htaccess. استفاده کنید.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
اگر قصد دارید برعکس ریدایرکت بالا اقدام کنید. یعنی سایت در حالت عادی با www بارگذاری میشود و باید بدون www نمایش داده شود، کد زیر برای هدف شما مناسب است.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]
اگر نیاز دارید تا یک سری فایل با پسوند خاصی را به فایل با پسوند دیگری ریدایرکت کنید، کد زیر را در فایل htaccess. درج کنید.
مثلا vediana.com/file.php را به vediana.com/file.htm ریدایرکت کنیم.
RewriteEngine On
RewriteCond %{REQUEST_URI} .php$
RewriteRule ^(.*).php$ /$1.htm [R=301,L]
مواردی که توضیح دادیم دستورات متداول ریدایرکت در htaccess. برای ریدایرکت 301 بود. شاید این موارد کمی دشوار به نظر برسند پس بهتر است از کارشناس سئو، طراح سایت و یا میزبان هاستینگ خود درخواست انجام آن را داشته باشید.
ریدایرکت 302
ریدایرکت 302 دقیقا مقابل ریدایرکت 301 قرار میگیرد. همه ما بر این امر واقفیم که رتبه گرفتن از گوگل کار راحتی نیست و باید برای زمان طولانی روی سئو و بهینه سازی سایت خود تمرکز کنیم. به همین دلیل وقتی صفحهای را ریدایرکت 302 میکنیم گوگل هیچ رتبه و اعتباری از لینک اولیه به لینک ثانویه ارجاع نمیدهد. از ریدایرکت برای مواردی مانند بررسی بازخورد کاربران میتوان استفاده کرد.
مثلا ممکن است برای صفحه فرود خدمات خود یک طراحی جدید با استفاده از المانهای متفاوتی انجام داده باشید و با ریدایرکت 302 و آنالیز رفتار کاربران را بررسی کنید و این صفحه جدید که شاید هنوز ایندکس هم نشده باشد، هیچ تاثیری در رتبه و اعتبار شما نخواهد داشت.
اگر از سرور یونیکس و آپاچی برای سایت خود استفاده میکنید با استفاده از قطعه کد زیر کار ریدایرکت انجامپذیر است. فایل .htaccess را دانلود کرده و روی سیستم خود ذخیره کنید تا در صورت بروز مشکل مجددا همان فایل اصلی را آپلود کنید. سپس در بخش فایل منیجر فایل .htaccess را ادیت کنید و قطعه کد زیر را باتوجه به آدرسهای سایت خود درج کنید.
redirect 302 /OldPage.html http://xyzname.com/NewPage.html
سخن آخر
فایل htaccess. یک فایل مهم برای پیکربندی وبسرور آپاچی است که با استفاده از آن نحوه دسترسی به سایت و عملکرد آن مدیریت و کنترل میشود. این فایل کاربردهای متفاوتی دارد که در این مقاله فقط یکی از این کاربردها یعنی ریدایرکت در htaccess. را بررسی کردیم و دو مدل از پرکاربردترین ریدایرکتها یعنی ریدایرکت دائم یا 301 و ریدایرکت موقت یا 302 را بههمراه قطعه کدهای هرکدام معرفی کردیم.
بهخاطر داشته باشید مبحث ریدایرکتها بسیار مهم است و اگر دانش کافی راجع سئو و بهینه سازی سایت ندارید، حتما از یک کارشناس سئو مشاوره بگیرید و ریدایرکت مناسبی برای سایت خود انجام بدهید. چرا که هر اشتباهی ممکن است منجر به افت رتبه سایت شما شود. یا حتی ممکن است مراحل انجام ریدایرکت را درست انجام دهید ولی زیادهروی در ریدایرکت باعث سردرگمی رباتهای موتور جستجو شود و رتبه و اعتبار سایت شما تحتالشعاع قرار بگیرد.
موضوع: بهینه سازی سایت
در بحث پیرامون این مقاله شرکت کنید