فایل htaccess
شاید بهتر باشد اول با سوال “فایل htaccess. چیست؟” شروع کنیم. این یک فایل پیکربندی بسیار خاص است که توسط وب سرور Apache استفاده می شود. یک فایل htaccess. می تواند به وب سرور بگوید که چگونه انواع مختلفی از اطلاعات را ارائه دهد و نحوه مدیریت درخواست هدرهای (header) مختلف HTTP را ارائه دهد.
در واقع این وسیله ای برای تمرکززدایی برای تنظیم تنظیمات وب سرور است. یک سرور فیزیکی ممکن است 50 وب سایت مختلف را در خود جای دهد که هر کدام دارای فایل htaccess. مخصوص خود هستند. این قدرت زیادی به مدیران وب اعطا می کند، در غیر این صورت غیرممکن است. اما چرا باید از htaccess. استفاده کرد؟
بزرگترین دلیل امنیت است. می توانید بعضی از دایرکتوری ها یا فهرست راهنماها را قفل کنید یا آن ها را با رمز عبور محافظت کنید. بعد از طراحی سایت به صورت اختصاصی یا با سیستم های مدیریت محتوای جدید امنیت موضوع مهمی در یک سایت است که میتوان آن را به وسیله فایل htaccess. تا حدی زیادی تامین کرد.
بعد از طراحی سایت مورد نظر خود و راه اندازی آن، ممکن است بعضی از صفحات سایت، خطا هایی مثل 404 را بزند اما htaccess. این پیام های خطا را به یک صفحه وب خاص هدایت می کند. این فقط یک خط کد می گیرد در عین حال می تواند به طرز چشمگیری بر واکنش بازدیدکنندگان نسبت به صفحات گمشده تأثیر بگذارد.
چرا htaccess. نامیده می شود؟
htaccess. مخفف ” hypertext access.” است که به معنای دسترسی به متن با فرمت می باشد. این نام از کاربرد اصلی این ابزار که کنترل دسترسی کاربر به برخی از فایل ها بر اساس هر دایرکتوری است، گرفته شده است. با استفاده از زیرمجموعه ای از دستورالعمل های تنظیمات Apache http.conf ، فایل htaccess. به مدیر سیستم اجازه داد دسترسی به فهرست های مخصوص را به کاربران با نام و رمز عبور مشخص شده در یک فایل htpasswd. محدود کند. در حالی که فایل های htaccess. هنوز برای این مورد استفاده می شوند، آن ها همچنین برای موارد دیگری استفاده می شوند که در ادامه توضیح خواهیم داد.
فایل htaccess. کجاست؟
از لحاظ تئوری هر پوشه (دایرکتوری) در سرور شما می تواند یک پوشه داشته باشد. به طور کلی یک پوشه در پوشه روت وب شما وجود دارد، این پوشه ای است که تمام محتوای وب سایت شما را نگهداری می کند و معمولاً برچسبی مانند public_html یا www دارد. اگر یک دایرکتوری دارید که شامل چندین زیر شاخه وب سایت است معمولاً یک پرونده htaccess. در دایرکتوری روت اصلی (public_html) وجود دارد و همچنین در هر subdirectory یا زیر دایرکتوری (/ sitename) یک پرونده.
دلیل پیدا نکردن فایل htaccess. خود
در بیشتر سیستم های پرونده، نام پرونده هایی که با نقطه (.) شروع می شوند، پرونده های مخفی هستند. این بدان معناست که به طور پیش فرض معمولاً قابل مشاهده نیستند. اما رسیدن به آن ها سخت نیست. سرویس گیرنده FTP یا File Manager شما باید تنظیماتی برای نمایش پرونده های پنهان ” show hidden files ” داشته باشد. این در مکان های مختلف و در برنامه های مختلف وجود دارد اما معمولاً در تنظیمات ” Settings”، ” Preferences” یا گزینه های پوشه ” Folder Options” می باشد. گاهی اوقات آن را در منوی ” View” پیدا خواهید کرد.
نحوه ایجاد فایل htaccess. در صورت نداشتن آن
اول از همه اطمینان حاصل کنید که نمایش پرونده های پنهان ” show hidden files” (یا معادل آن) را روشن کنید، تا مطمئن شوید که در واقع فایل htaccess. ندارید. اغلب فایل های htaccess. به طور خودکار ایجاد می شوند بنابراین معمولاً یک فایل دارید. اما همیشه اینطور نیست. اگر چک کردید و واز نداشتن این فایل اطمینان حاصل کردید به راحتی می توانید یکی ایجاد کنید:
- یک فایل جدید را در یک ویرایشگر متن ساده یا text editor شروع کنید.
- آن را با فرمت ASCII (نه UTF-8 یا هر چیز دیگری) به عنوان htaccess. ذخیره کنید.
- مطمئن شوید که htaccess.txt یا مواردی از این قبیل نباشد. پرونده باید فقط دارای نام htaccess. بدون پسوند اضافی باشد.
- آن را از طریق FTP یا مدیر فایل مبتنی بر مرورگر خود در فهرست مناسب آپلود کنید.
محافظت از رمز عبور با htaccess.
هدف اصلی فایل های htaccess. محدود کردن دسترسی به بعضی از دایرکتوری ها به ازای هر کاربر است (یعنی نام و دسترسی به متن). بنابراین ابتدا آن را بررسی خواهیم کرد.
htpasswd.
نام های کاربری (Username) و رمزهای عبور (password) برای سیستم htaccess. در یک نام فایل htpasswd. ذخیره می شوند. هرکدام از این نام ها به صورت زیر ذخیره می شوند:
Username : encryptedpassword
به عنوان مثال:
Maryadams: F518zSN0k3tGI
مهم است که بدانید رمز عبوری ذخیره شده در فایل، رمزعبور واقعی نیست که برای ورود به سیستم استفاده می شود. بلکه یک هش پنهانی (cryptographic hash) رمز عبور است.
این بدان معنی است که رمز عبور از طریق الگوریتم رمزگذاری اجرا شده است و نتیجه ذخیره می شود. هنگامی که یک کاربر وارد سیستم می شود رمز عبور متن ساده وارد می شود و از طریق همان الگوریتم اجرا می شود. اگر ورودی یکسان باشد گذرواژه ها مطابقت دارند و به کاربر اجازه دسترسی داده می شود.
ذخیره رمزهای عبور از این طریق باعث امنیت بیشتر آن ها می شود؛ اگر کسی بخواهد به پرونده htpasswd. شما دسترسی پیدا کند فقط رمزهای عبور هش شده را می بیند، نه نسخه های اصلی و هیچ راهی برای بازسازی نسخه های اصلی از هش وجود ندارد. جالب است بدانید این یک رمزگذاری یک طرفه است.
نحوه استفاده از htpasswd. با htaccess.
هر فهرست می تواند فایل htaccess. مخصوص به خود را داشته باشد با مجموعه کاربران خاص خود که مجاز به دسترسی به آن هستند. اگر می خواهید کسی (از جمله کاربران غیر ورود به سیستم) به فهرست و پرونده های آن دسترسی پیدا کند حقیقتا کاری انجام ندهید؛ این پیش فرض است. برای محدود کردن دسترسی باید موارد زیر را به فایل htaccess. اضافه کنید.
خط اول مسیر و نام فایل را به لیست نام های کاربری و رمزهای عبور شما مشخص می کند. خط دوم نامی را برای منطقه امن (secured area) مشخص می کند که می تواند هر چه که دوست دارید باشد. خط سوم authentication یا احراز هویت “Basic” را مشخص می کند؛ چیزی که معمولاً به آن نیاز دارید.
برچسب محدودیت را مشخص می کند (مشخص کردن صلاحیت دریافت (Get) یا ارسال (Post) به هر فایل موجود در فهرست را). در جفت برچسب ها لیستی از افراد مجاز به دسترسی به پرونده ها وجود دارد.
در مثال بالا ، هر کاربر معتبری می تواند به پرونده ها دسترسی پیدا کند. اگر می خواهید دسترسی به یک کاربر خاص یا تعداد کمی از کاربران را محدود کنید، می توانید نام آن ها را بگذارید.
محدودیت های دسترسی با ip های خاص در htaccess.
برای جلوگیری از دسترسی کاربران به آدرس IP خاص (لیست سیاه) می توانید از htaccess. استفاده کنید. این در صورتی مفید است که شما کاربران مربوطه را از آدرس های IP خاص شناسایی کرده اید که مشکلاتی را ایجاد کرده اند. برای مسدود کردن آدرس های IP خاص به سادگی از دستورالعمل زیر با آدرس های IP مناسب استفاده کنید:
همچنین می توانید عکس این کار را انجام دهید؛ همه را بجز بازدیدکنندگان مربوطه را از یک آدرس IP خاص (لیست سفید) مسدود کنید. این درصورتی مفید است که لازم است دسترسی شما فقط به کاربران تأیید شده محدود شود.
مدیریت خطاها
استفاده از فایل های htaccess. برای مشخص کردن اسناد خطا بسیار ساده است، یکی از ساده ترین کارهایی که می توانید با این ویژگی انجام دهید. اگر هیچ نوع مدیریت خطایی را مشخص نکنید سرور به راحتی پیام را به مرورگر باز می گرداند و مرورگر یک پیام خطای عمومی را به کاربر نمایش می دهد که معمولاً ایده آل نیست.
برای هر کد خطایی که می خواهید مدیریت کنید یک سند HTML ایجاد کنید. می توانید نام این موارد را هرچه دوست دارید بگذارید اما بهتر است نامی را برای آن ها انتخاب کنید که به خاطر بیاورید برای چه چیزی استفاده می شوند مانند not-found.html یا خیلی ساده تر مثل 404.html. سپس در فایل htaccess. مشخص کنید که کدام سند را با هر نوع خطا استفاده کنید.
فعال کردن Server Side Includes (SSI)
SSI شامل چه مواردی است؟
SSI یا Server Side Includes یک زبان برنامه نویسی سبک وزن است که در درجه اول برای جاسازی اسناد HTML در سایر اسناد HTML استفاده می شود. این امر باعث می شود تا بتوان از عناصر معمول مانند سرصفحه ها (headers)، پاورقی ها (footers)، ستون های فرعی (sidebars) و منوها مجدداً استفاده کرد. می توانید آن را به عنوان یک پیشرو سیستم های مدیریت محتوای امروزی تصور کنید. برخی از سرورهای میزبان وب Server Side Includes را به طور پیش فرض فعال می کنند. در غیر این صورت می توانید آن را با فایل htaccess. خود فعال کنید مانند این موارد:
مسدود کردن اقدامات
htaccess. می تواند برای مسدود کردن کاربران توسط دامنه (domain) یا referrer مورد استفاده قرار گیرد. همچنین می توانید از آن برای جلوگیری از ربات ها (bots) و اسکرابرها (scrapers) استفاده کنید. بیایید دریابیم که چگونه!
نحوه مسدود کردن کاربران توسط دامنه
شما می توانید بر اساس نام دامنه، کاربران را مسدود یا مجاز کنید. این می تواند به شما در مسدود کردن افراد حتی هنگام حرکت کردنشان از آدرس IP به آدرس IP کمک کند.
نحوه مسدود کردن کاربران توسط referrer
referrer وب سایتی است که حاوی لینکی به سایت شما است. وقتی کسی لینکی به یک صفحه در سایت شما را دنبال می کند، سایتی که از آن آمده است referrer است. دستورالعمل های htaccess. که مسدود کردن مبتنی بر referrer را انجام می دهند به موتور mod_rewrite متکی هستند.
مشخص کردن یک فایل پیش فرض برای یک فهرست یا Directory
وقتی از یک وب سرور برای یک URL درخواست می شود که نام یک فایل را مشخص نمی کند، فرض موجود در اکثر وب سرورها این است که URL به یک دایرکتوری اشاره دارد. فایل پیش فرض، به طور پیش فرض، index.html نامیده می شود. این مورد به ابتدای اینترنت برمی گردد زمانی که یک وب سایت فقط مجموعه ای از اسناد بود و صفحه ” home” معمولاً نمایه ای (index) از این اسناد بود. اما ممکن است شما نخواهید که index.html صفحه پیش فرض باشد. به عنوان مثال ممکن است به نوع فایل دیگری مانند index.shtml ، index.xml یا index.php نیاز داشته باشید.
htaccess. به شما امکان می دهد صفحه پیش فرض یک فهرست را به راحتی تنظیم کنید:
اگر می خواهید پیش فرض شما home.html باشد ، کار به راحتی انجام می شود:
حفاظت از htaccess. از دسترسی غیر مجاز
مخفی کردن htaccess. یک روش امنیتی خوب در مقابل هکرها می باشد. پنهان کردن فایل htaccess. از دید عموم بسیار آسان است. فقط کد زیر را اضافه کنید:
تاثیر htaccess. در سرعت بارگذاری سایت
هنگام طراحی سایت باید به این نکته توجه داشته باشید که سرعت بارگذاری سایت در توسعه آن بسیار موثر است. علاوه بر این htaccess. در سرعت سایت بسیار تاثیر گذار است. شما با تنظیم کردن هدرهای HTTP درسایت به وسیله htaccess. می توانید سرعت سایت را بهبود بخشید. این کار در جذب کاربر و بالا رفتن رتبه سایت تاثیر بسزای دارد.
نقش فایل htaccess. در سئو
سئو و بهینه سازی بعد از اتمام طراحی سایت یکی از مهمترین مواردی است که باید مالک سایت روی سایت خود اجرا کند. SEO می تواند اصلی ترین دلیل برای قرار گرفتن سایت در صفحه اول جستجوی گوگل باشد. اما نقش فایل htaccess. در سئو چیست؟
- تغییر مسیرها یا redirect در جهت جلوگیری از پیام های خطای 404 یا 301 (استفاده از redirect ها برای خزنده های موتور جستجو که می دانند کدام صفحات را باید فهرست بندی کنند).
- جلوگیری از استفاده محتوای تکراری در سایت همراه با قوانین www و HTTPS
- ایجاد url های بهینه و حذف پسوندهایی مثل index/ یا php.
در این مقاله به بررسی فایل htaccess. پرداخته شد. Htaccess. کاربرد و اهمیت زیادی برای وب سرور و سایت دارد. همچنین ابزار قدرتمندی است که بعد از اتمام طراحی سایت خود، روی سئو و بهینه سازی سایت شما بسیار تاثیرگذار است.