آموزش htaccess

آموزش htaccess
Avatar
نویسنده: شکوهی
شنبه 19 فروردین 1396
مطالعه: ۱۲ دقیقه ۰ نظر ۲۱۹۱ بازدید

فایل .htaccess برای وب سرور آپاچی به‌عنوان راهی به‌منظور پیکربندی جزئیات وب‌سایت بدون نیاز به دسترسی به فایل‌های اصلی سرور و تغییر آن‌هاست. فایل .htaccess بسیار مهم است؛ زیرا احتمال دارد امنیت وب‌سایت شما را به خطر بیندازد و روی سرعت وب‌سایت تأثیرگذار باشد. اگر صاحب وب‌سایت یا سرور هستید، حتماً نیاز دارید درباره فایل .htaccess بیشتر بدانید. در مطلب حاضر، با نحوه استفاده از فایل .htaccess بیشتر آشنا خواهیم شد؛ پس تا پایان این مقاله از سرویس‌های میزبانی و آموزش‌های هاست با ما همراه باشید.

خرید انواع هاست ابری برای وب سرور آپاچی

با توجه به توضیحات این مقاله می‌توانید، سرویس میزبانی خود را مدیریت کنید و اگر شما قصد خرید سرویس‌های هاست پارس پک را دارید، می‌توانید از لینک زیر اقدام کنید و یا با کارشناسان فروش ما در ارتباط باشید.

فایل .htaccess چیست؟

همان‌طور‌که گفتیم، از این فایل برای دسترسی به پیکربندی وب سرور بدون نیاز به دسترسی کامل به آن استفاده می‌شود. نام این فایل با یک نقطه شروع می‌شود که نشان می‌دهد در پوشه پنهان است. از فایل .htaccess می‌توان برای ایجاد صفحات خطای سفارشی (مانند صفحات خطای ۴۰۴)، ایجاد تغییر مسیر URL، اجرای احراز هویت با رمزعبور برای دسترسی به دایرکتوری خاص و… استفاده کرد.

پیش‌نیازها

اگر می‌خواهید آموزش استفاده از فایل .htaccess را به‌طورکامل فرابگیرید، بهتر است پیش‌نیازهای زیر را فراهم کنید:

  • سرور اوبونتو 20.04 با کاربر غیر‌ریشه و امتیازهای sudo و فایروال فعال
  • وب سرور آپاچی که روی سرور لینوکس اوبونتو نصب شده باشد
  • یک دامنه در‌دسترس (اختیاری). از وب‌سایت Freenom می‌توانید دامنه رایگان تهیه کنید.

برای اینکه بدانید آدرس آی پی چه انواعی دارد و چه خطراتی آن را تهدید می کند؟ مقاله زیر را بخوانید.

IP چیست؟

پس از اتمام راه‌اندازی و ایجاد فایل .htaccess، مراحل زیر را دنبال کنید:

فعال‌کردن فایل .htaccess

اگر به تنظیمات وب سرور دسترسی دارید، پیکربندی آپاچی را می‌توانید تغییر دهید تا به فایل .htaccess مجوزهای لازم را بدهید.

برای انجام این کار، فایل میزبان مجازی خود را به آدرس apache2/sites-available/your_domain.conf منتقل و با استفاده از ویرایشگر متن دلخواه خود مانند nano باز کنید:

sudo nano /etc/apache2/sites-available/your_domain.conf

این فایل حاوی محتویات زیر خواهد بود:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

قطعه کد Directory را درون قطعه کد VirtualHost مانند مثال زیر قرار دهید:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


<Directory /var/www/your_domain>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory> 
</VirtualHost>

مهم‌ترین خط این قطعه کد، AllowOverride All است که امکان استفاده از فایل .htaccess را فراهم می‌کند. پس از افزودن این قطعه کد، فایل را ذخیره کنید و سپس خارج شوید. اگر از nano استفاده می‌کنید، این کار را با فشردن کلیدهای CTRL + X و سپس Y می‌توانید انجام دهید.

در مرحله بعد، با دستور زیر آپاچی را ری‌استارت کنید:

sudo service apache2 restart

اکنون که تنظیمات فایل .htaccess برای استفاده ویرایش شده است، به‌راحتی می‌توانید فایل .htaccess را ایجاد کنید.

مقاله زیر مرور مفصلی است بر وب‌سرور آپاچی و مقایسه آن با دیگر وب‌سرورها، آن را از دست ندهید.

وب سرور آپاچی چیست؟

ایجاد فایل .htaccess

برای ایجاد فایل .htaccess، باید در ترمینال به دایرکتوری root وب خود بروید. این مکان جایی است که فایل .htaccess شما در آن قرار می‌گیرد و اجرا می‌شود. محل قرار‌گیری فایل .htaccess نیز مهم است؛ زیرا تمام تنظیمات موجود در آن ممکن است بر دایرکتوری اصلی و تمامی دایرکتوری‌های زیر‌مجموعه اثر بگذارد. اگر چندین وب‌سایت مختلف در یک سرور آپاچی سرویس‌دهی می‌کنید، باید برای هر وب‌سایت دایرکتوری جداگانه در نظر بگیرید.

اگر پیش‌نیازها را به‌درستی فراهم کرده باشید، دایرکتوری root وب شما شبیه /var/www/your_domain/.htaccess.htaccess خواهد بود. برای ایجاد فایل جدید در این مکان، دستور زیر را اجرا کنید:

sudo nano /var/www/your_domain/.htaccess

اکنون که توانستید فایل .htaccess جدیدی ایجاد کنید، در‌ادامه با برخی از کاربردهای رایج‌ .htaccess آشنا خواهیم شد.

کاربردهای رایج .htaccess

فایل .htaccess پنج کاربرد رایج برای صفحات وب‌سایت شما دارد. این کاربردها بدین‌شرح‌اند:

Mod_Rewrite .۱

Mod_Rewrite یکی از امکانات پرکاربرد فایل .htaccess است. شما می‌توانید با استفاده از فایل .htaccess، نوع نمایش URLها و صفحات وب برای کاربران را ویرایش کنید.

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

۲. احراز هویت (Authentication)

برای تنظیم سیستم امنیتی احراز هویت با .htaccess، می‌توانید فایل رمزعبور .htpasswd ایجاد کنید تا برای احراز هویت کاربران استفاده شود. با ایجاد این فایل، پورتال رمزعبوری ایجاد می‌کنید که کاربران را وادار می‌کند برای دسترسی به بخش خاصی از وب‌سایت، رمزعبور وارد کنند. برای امنیت بیشتر، حتماً دقت کنید این فایل را در‌دسترس کاربران قرار ندهید.

برای ایجاد فایل htpasswd، دستور زیر را اجرا کنید. در این دستور، از آپشن -c و نام کاربری برای ایجاد فایل خود استفاده کنید. پس از اجرای این دستور، اعلان ورود رمزعبور به شما نمایش داده می‌شود که باید برای آن رمزعبور در نظر بگیرید. شما می‌توانید تعداد بسیار زیادی خط کد در فایل htpasswd وارد کنید؛ اما مطمئن شوید که هر کاربر خط مربوط به خود را دارد. در مثال زیر، نحوه ایجاد ورودی جدید در این فایل برای کاربر sammy نمایش داده شده است:

sudo htpasswd -c /etc/apache2/.htpasswd sammy

با اجرای فایل cat /etc/apache2/.htpasswd، می‌توانید محتویات آن را بررسی و تمامی رکوردهای اضافه‌شده را به‌همراه نام کاربری و رمزعبور مشاهده کنید. هنگامی‌که کاربران مدنظرتان را اضافه کردید، فایل .htaccess را باز کنید. اگر پیش‌نیازها را به‌طور‌کامل فراهم کرده باشید، فایل شما در مکان زیر خواهد بود:

sudo nano /var/www/your_domain/.htaccess

دقت کنید که در این مثال کل دایرکتوری‌های root یعنی /var/www/your_domain را محدود می‌کنیم؛ اما می‌توانید آن فایل را در هر دایرکتوری موردنیاز قرار دهید و محدود کنید. پس از باز‌شدن فایل .htaccess، کدهای زیر را به آن اضافه و تغییرات را ذخیره کنید تا رمزعبور برایتان فعال شود:

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
تغییر url با htaccess
نحوه احراز هویت با فایل .htaccess چگونه است

۳. صفحات خطای سفارشی (Custom Error Pages)

با استفاده از فایل .htaccess، به‌راحتی می‌توانید صفحات خطای سفارشی خود را ایجاد کنید و پیش‌فرض سرور را تغییر دهید. برخی از خطاهای رایج‌ عبارت‌اند از:

  • 400 Bad Request
  • 401 Authorization Required
  • 403 Forbidden Page
  • 404 File not Found
  • 500 Internal Error

MIME Types .۴

در مواقعی که وب سرور برخی از فایل‌های مدنظر شما را ارائه نمی‌دهد، از این قابلیت می‌توانید استفاده کنید. فایل‌های .htaccess به کاربران اجازه می‌دهند تا مشخص کنند که چه نوع MIME باید برای فایل‌های خاص در فهرست html آن‌ها گزارش شود. وقتی شخصی آن فایل را از صفحه اصلی انتخاب می‌کند، این نوع MIME ازطریق مرورگر فراخوانی می‌شود. با استفاده از دستور زیر، می‌توانید Multipurpose Internet Mail Extensions یا MIME را در فایل .htaccess پیکربندی کنید:

AddType audio/mp4a-latm .m4a

مطمئن شوید که پسوند برنامه و فایل را با نوع MIME که می‌خواهید پشتیبانی کنید، جایگزین کنید. در مثال بالا، نوع فایل صوتی MIME را مشخص کرده‌ایم.

SSI .۵

Server side includes یا SSI یکی از عملیات‌های عالی برای افزایش سرعت وب‌سایت است. ازجمله کاربردهای رایج‌ SSI، به‌روزرسانی تعداد زیادی از صفحات با برخی داده‌های خاص بدون نیاز به به‌روزرسانی کامل هر صفحه است. برای مثال، اگر می‌خواهید نقل‌قولی ساده را در پایین صفحات خود تغییر دهید، از این قابلیت می‌توانید استفاده کنید.

برای فعال‌کردن SSI، کد زیر را در فایل .htaccess خود وارد کنید:

AddType text/html .shtml
AddHandler server-parsed .shtml</pre>

این خطوط در فایل .htaccess مشخص می‌کنند که فایل‌های .shtml معتبر هستند. خط دوم باعث می‌شود که سرور تمام فایل‌هایی که فرمتشان .shtml  است، در هر دستور SSI تجزیه کند. به‌هر‌حال، اگر صفحات .html زیادی دارید و به تغییر نام آن‌ها به افزونه .shtml تمایلی ندارید، از تاکتیک XBitHack برای تجزیه دستورهای SSI می‌توانید استفاده کنید. برای پیاده‌سازی تاکتیک XBitHack، می‌توانید خط زیر را به .htaccess اضافه کنید تا آپاچی تمام فایل‌های .html را با مجوزهای SSI بررسی کند:

XBitHack on

همچنین، اگر می‌خواهید XBitHack را تنها برای یک صفحه پیاده‌سازی کنید، از دستور زیر برای تغییر مجوزها استفاده کنید:

chmod +x pagename.html

فایل .htaccess سرعت و امنیت را کاهش می‌دهد؟

حتی اگر یک فایل .htaccess برای وب‌سایت استفاده شود، قطعاً بر دو عامل مهم، یعنی سرعت و امنیت، تأثیر‌گذار است.

برای دریافت آموزش کامل نصب وب سرور Apache مقاله زیر را بخوانید.

نصب وب سرور آپاچی روی ویندوز

۱. تاثیر .htaccess بر سرعت

فایل .htaccess ممکن است سرعت سرور شما را کاهش دهد؛ اما برای بسیاری از سرورهای قوی تغییری بسیار کوچک به‌شمار می‌آید. دلیل تأثیر آن بر سرعت وب‌سایت می‌تواند موقعیت فایل .htaccess باشد؛ زیرا این فایل روی همه صفحات و دایرکتوری‌های زیر‌مجموعه تأثیر می‌گذارد؛ یعنی هر‌بار که صفحه‌ای اجرا می‌شود، سرور دایرکتوری آن صفحه و تمامی دایرکتوری‌های قبل از آن را بررسی می‌کند تا به بالاترین دایرکتوری یا فایل .htaccess برسد. این عملیات تا زمانی ادامه می‌یابد که دستورالعمل AllowOverride اجازه استفاده از فایل .htaccess را بدهد.

۲. تاثیر .htaccess بر امنیت

دسترسی به فایل .htaccess بسیار بیشتر از پیکربندی‌های استاندارد آپاچی است و تغییرات بدون نیاز به راه‌اندازی مجدد سرور در موقع تعیین‌شده انجام خواهند شد. این قابلیت به کاربران اجازه می‌دهد تا در فایل .htaccess تغییراتی ایجاد کنند و کنترل زیادی روی سرور داشته باشند. هر دستوری که در فایل .htaccess قرار می‌گیرد، هیچ تفاوتی با قرار‌گیری آن در پیکربندی آپاچی ندارد و یکسان اجرا می‌شوند. همچنین، دقت کنید آپاچی به‌طور‌کلی استفاده از فایل .htaccess را برای کاربران منع می‌کند.

کد ssl در htaccess
تاثیر فایل .htaccess  بر سرعت و امنیت

جمع‌بندی

فایل .htaccess دسترسی‌های زیادی برای صاحبان وب‌سایت‌ها فراهم می‌کند. با استفاده از آن می‌توانید امکانات متفاوتی مانند SSI و Custom Error Pages و MIME را فعال کنید. از‌آ‌ن‌جاکه این فایل مستقیماً در آپاچی فعال می‌شود، روی امنیت سرور تأثیر‌گذار است و بسته به پیکربندی شما، سرعت وب‌سایت را کاهش یا افزایش می‌دهد. در این مقاله، نحوه ایجاد و فعال‌سازی و استفاده از فایل .htaccess را به‌طورکامل آموزش دادیم و هرآنچه برای اجرای آن نیاز داشتید، توضیح دادیم.

برای دریافت آموزش کامل نصب و کانفیگ وب سرور آپاچی در لینوکس اوبونتو، دبیان و CentOs، مقاله زیر را بخوانید.

نصب Apache در لینوکس

سؤالات متداول

۱. فایل .htaccess برای چه هدفی استفاده می‌شود؟

فایل .htaccess راهی برای ایجاد تغییرات پیکربندی در وب‌سایت براساس هر دایرکتوری ارائه می‌دهد. این فایل در دایرکتوری خاصی ایجاد می‌شود که حاوی یک یا چند دستورالعمل پیکربندی است که برای آن دایرکتوری و زیر‌شاخه‌هایش اِعمال می‌شود.

۲. فایل .htaccess کجاست؟

فایل .htaccess در دایرکتوری اصلی وب‌سایت قرار دارد. بسته به ارائه‌دهنده هاست شما، دایرکتوری ریشه ممکن است پوشه‌ای با برچسب public_html ،www ،‌htdocs یا httpdocs باشد.

۳. آیا به فایل .htaccess نیاز داریم؟

.htaccess برای وب‌سایت‌های عمومی مورد‌نیاز نیست. این فایل به شما امکان می‌دهد تا در نحوه رفتار وب‌سایتتان تغییراتی ایجاد کنید. به‌عنوان مثال، افرادی را از دسترسی به وب‌سایت خود منع کنید یا لینک قدیمی و مُرده را به صفحه جدید هدایت کنید.

۴. .htaccess در آپاچی چیست؟

فایل‌های .htaccess به کاربران اجازه می‌دهند تا دایرکتوری‌های وب سروری را که کنترل می‌کنند، بدون تغییر در فایل پیکربندی اصلی پیکربندی کنند.

۵. چگونه فایل .htaccess را ویرایش کنیم؟

  • وارد حساب هاست خود شوید و سپس به سی‌پنل یا دایرکت‌ادمین بروید و File Manager را انتخاب کنید.
  • از File Manager به پوشه public_html بروید. فایل .htaccess در این پوشه قرار دارد. وقتی آن را پیدا کردید، روی آن کلیک‌راست و Edit را انتخاب کنید.

۶. چگونه فایل .htaccess را غیرفعال کنیم؟

  • به هاست خود متصل شوید.
  • پس از اتصال، به دایرکتوری root وب‌سایت خود مانند publc_html بروید.
  • فایل .htaccess را پیدا کنید و آن را تغییر نام دهید.

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

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


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.