htaccess چیست؟
ارسال شده در
26 مهر 1393 | دستهبندی:
اخبار ، عمومی
.htaccess یک فایل پیکربندی برای استفاده در وب سرور آپاچی می باشد. این فایل میتواند برای تغییر پیکربندی نرمافزار Apache Web Server برای فعال یا غیر فعال کردن قابلیتها و ویژگیهای اضافی که Apache Web Server ارائه شده استفاده شود. این فایل تقریبا تمامی محدودیت های اعمالی بردایرکتوری اصلی وب سایت شما را بر عهده دارد و میتواند پیغام های خطا را مدیریت کند.(ایران سرور)
با .htaccess قلب وبسایت خود را تحت کنترل بگیرید
اگر از وبسرور آپاچی برای وبسایت خود استفاده میکنید، با یادگیری قابلیتهای مهم فایل .htaccess، میتوانید کنترل کامل وبسایت خود را برعهده بگیرید.
فایل .htaccess یک فایل ساده اسکی (ASCII) میباشد که میتوانید آن را به وسیله نرمافزارهای متنی ساده نظیر Notepad و یا SimpleText به وجود آورید. دقت داشته باشید که این فایل دارای هیچ نامی نمیباشد و فقط دارای پسوند است که پسوند آن، htaccess است. برای درست کردن این فایل میتوانید فایل متنی خود را که مثلا به صورت test.txt میباشد، تغییر نام داده و آن را به صورت .htaccess درآورید.
تذکر: اگر از ویندوز استفاده میکنید و هنگام تغییر نام دادن فایل به .htaccess، پیغام خطایی مبنی بر اینکه «میبایست برای فایل خود نامی را اختیار کنید» دریافت میکنید، فایل را بر روی سرور آپلود کرده و سپس در سرور آن را تغییر نام دهید. این کار به وسیله نرمافزارهای افتیپی نظیر CuteFTP یا AbsoluteFTP بسیار ساده میباشد.
در هنگام استفاده از فایل .htaccess، دانستن سه نکته از اهمیت بالایی برخوردار است:
نکته اول: فایل .htaccess را میبایست به صورت ASCII آپلود کرده و مجوز دسترسی به آن را بر روی 644 (یا rw-r–r–) تنظیم نمایید.
نکته دوم: فایل .htaccess را میتوانید به پوشههای مختلفی اعمال نمایید. به عنوان مثال اگر آن را بر روی root آپلود نمایید، تنظیمات آن به کل وبسایت اعمال خواهد شد و اگر آن را درون پوشهای نظیر images/ آپلود نمایید، تنظیمات آن به پوشه images و زیرپوشههای آن اعمال خواهد شد.
نکته سوم: هر htaccess را میبایست درون یک خط تایپ نمایید. یعنی در انتهای هر دستور، میبایست یکبار کلید Enter را فشار دهید.
جلوگیری از لیست شدن محتویات یک پوشه با کمک htaccess
فرض کنید پوشهای از تصاویر دارید و نمیخواهید که افراد غریبه، محتویات این پوشه را دیده و آنها را تماشا کنند. برای این کار، سه راه وجود دارد:
1- ساخت یک صفحه index و قرار دادن آن در پوشه مورد نظر
2- استفاده از فایل .htaccess
3- استفاده از فایلهای HEADER و README
از آنجا که بحث ما در مورد فایل .htaccess میباشد، راه دوم را مورد بررسی قرار میدهیم. برای این کار میبایست از فرمان IndexIgnore استفاده نمایید:
IndexIgnore *
این کد از لیست شدن تمامی فایلهای پوشه مورد نظر، جلوگیری میکند. حال فرض کنید که درون پوشهای انواع واقسام فایلها نظیر فایلهای اچتیامال و تصاویر دارید و میخواهید که فقط از لیست شدن تصاویر جلوگیری شود. بدین منظور میتوانید از کد زیر استفاده کنید:
IndexIgnore *.gif *.jpg
در واقع این کد از لیست شدن تمامی فایل هایی که به .gif و .jpg ختم میشوند، جلوگیری میکند.
حال فرض کنید که سرور شما، به طور پیشفرض، از لیست شدن پوشهها جلوگیری کرده است و شما میخواهید آن را تغییر دهید. برای این کار میتوانید از دستور زیر استفاده کنید:
Options +Indexes
عوض کردن صفحه پیشفرض وبسایت با کمک htaccess
به طور کلی، تمامی وبسرورها از روی قانون خاصی صفحات وب را نشان میدهند. برای آنکه صفحات وب تنها به یک پسوند منحصربه فرد نظیر .htm ختم نمیشوند و انواع واقسام پسوندهای مختلف، برای صفحات وب وجود دارد.
حال فرض کنید که وبسرور شما، ابتدا فایل index.html را نشان میدهد و در صورت نبود آن، فایلهای index.htm، index.php و … شما میخواهید این روند را تغییر داده و فایل index.php را در اولویت قرار دهید. بدین منظور میبایست از دستور DirectoryIndex استفاده نمایید:
DirectoryIndex index.php index.cgi index.pl default.htm
کد بالا ابتدا به دنبال فایل index.php گشته و در صورت پیدا کردن آن، آن را به عنوان صفحه وب پیشفرض نمایش میدهد. اگر فایل index.php پیدا نشد، سرور به دنبال فایل بعدی که index.cgi میباشد گشته و همین روال، ادامه پیدا میکند. دقت داشته باشید که شما حتما مجبور به استفاده از index برای نام فایل نیستید و از هر اسم دیگری نیز، میتوانید استفاده کنید.
کاربرد فایل htaccess در Redirect
شاید تا به حال برایتان اتفاق افتاده باشد که به وبسایتی مراجعه کرده باشید و سپس متوجه شوید که آدرس وبسایت به طور اتوماتیک عوض شده و در واقع شما به آدرس دیگری ارجاع دادهشدهاید. برای اینکار میتوانید از دستور Redirect استفاده نمایید:
Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html
هچنین میتوانید یک پوشه را به پوشه دیگر ارجاع دهید:
Redirect /olddirectory http://yoursite.com/newdirectory/Hot Linkin
در جامعه وبمسترها، عبارت Hot Linkin یک عبارت نفرتبرانگیز است که از آن به عنوان «نقرهداغ وبمسترها» نیز یاد میشود. اما معنای آن چیست؟
فرض کنید دارای یک سایت عکاسی هستید که روزانه تعداد زیادی عکس در زمینههای مختلف را در آن آپلود میکنید و در اختیار عموم قرار میدهید. حال فرد دیگری از عکسهای شما در وبسایت خود استفاده میکند. این کار نه تنها برای شما هیچ سودی نخواهد داشت، بلکه از پهنای باند شما (BW) خواهد کاست و در نتیجه به زحمت و هزینه خواهید افتاد.
همچنین شما نمیتوانید بفهمید که چه وبسایتهایی از عکسهای شما استفاده کردهاند تا به آنها اخطار دهید.
برای جلوگیری از چنین عملی، میتوانید Hot Linkin را به وسیله mod_rewrite غیر فعال کنید:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ – [F]
یادتان نرود که mydomain.com را به آدرس وبسایت خود تغییر دهید. همچنین میتوانید کاری کنید در صورت استفاده از عکسهای سایت شما، به جای نمایش آنها، عکس مورد نظر شما نشان داده شود. مثلا اگر سایت A از عکسهای سایت شما استفاده کرد، عکسی را نمایش دهید که تبلیغ سایت شما باشد. برای اینکار میتوانید از کد زیر استفاده کنید:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/nasty.gif [R,L]
آدرس عکس خود را در خط آخر کد تغییر دهید.
تذکر: mod_rewrite یکی از قابلیتهای مفید آپاچی میباشد که توضیح آن، احتیاج به یک مقالهای مجزا دارد.
کاربرد فایل htaccess در صفحات خطا
به احتمال زیاد با خطای معروف 404 در اینترنت سروکار داشتهاید. این خطا در صورتی ظاهر میشود که صفحه مورد نظر شما (به هر دلیل)، در دسترس نباشد. یعنی در واقع صفحهای وجود نداشته باشد و شما آن را از مرورگر بخواهید.
وبسایتهای حرفهای و آنهایی که خواهان جذب مخاطب برای وبسایتهایشان هستند، این صفحات خطا را (که هر فرد با دیدن آنها سریعا دکمه close را میزند) سفارشی میکنند. یعنی به جای آن خطای 404 تکراری، یک صفحه خطای مناسب (در فرمت وبسایت) میگذارند و به مخاطب راهنماییهایی میدهند.
معمولا در این نوع صفحات خطا، بیوگرافی کوچکی از وبسایت و زمینه کاری آن نوشته شده و سپس مخاطب را (به وسیله لینک و یا اتوماتیک) به صفحه اصلی وبسایت ارجاع میدهند.
برای ساخت صفحات خطا (که تعداد آنها کم هم نیست)، و ارجاع مخاطبین درصورت برخورد به صفحات خطای مختلف به آنها، میتوانید از کد زیر استفاده کنید:
ErrorDocument code /directory/filename.ext
به عنوان مثال کد زیر، مخاطب را در صورت مواجه شدن با خطای 404، به صفحه notfound.html ارجاع میدهد:
ErrorDocument 404 /notfound.html
منبع: iranmodern
برچسب ها :
htaccess , redirect , آپاچی
نظرات شما