مخفی کردن فایلها
همانگونه که میدانید کلیه فایلهایی که نام آنها با .ht آغاز میگردد مخفی هستند. تقریبا میتوانیم اینگونه بگوییم که همه وب سرورها به گونه ای پیکربندی شده اند که از نمایش دادن این فایلها و کلا دسترسی به آن اجتناب کنند. دلیل این امر هم بسیار واضح است. فایلهای اینچنین حاوی اطلاعات و تنظیمات وب سرور و وب سایت هستند.
اغلب سرورها در پیکربندی اصلی خود دارای چیزی شبیه به این هستند:
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
که سرور را اینگونه پیکربندی میکند که چنانچه نام فایلی با .ht آغاز گردید دسترسی به آن ممکن نباشد و این کار به شیوه ای کارامد موجب میشود فایل .htaccess ما محافظت گردد.
البته این نکته را هم در یاد داشته باشید که نقطه در اول نام یک فایل باعث میگردد تا آن فایل در یک ایندکس نمایش نیابد.
به مثال زیر دقت کنید:
<Files ~ "^.*\.([Ll][Oo][Gg])">
Order allow,deny
Deny from all
Satisfy All
</Files>
این مثال به سرور میفهماند که فایلهای *.log را در نظر نگیرد. البته شما میتوانید چندین نام فایل را مشخص کنید به شرطی که آنها را با کاراکتر " | " از همدیگر جدا نمایید. نکته این که تعداد بلوکهای کد بالا در یک فایل .htaccess میتواند بیشتر از یک مورد باشد. بناربراین الزامی به نوشتن همه فایلها در یک بلوک کد ندارید.
مثلا میتوانید این بلوکهای کد را در نظر بگیرید:
# deny all .htaccess, .DS_Store $hî†é and ._* (resource fork) files
<Files ~ "^\.([Hh][Tt]|[Dd][Ss]_[Ss]|[_])">
Order allow,deny
Deny from all
Satisfy All
</Files>
# deny access to all .log and .comment files
<Files ~ "^.*\.([Ll][Oo][Gg]|[cC][oO][mM][mM][eE][nN][tT])">
Order allow,deny
Deny from all
Satisfy All
</Files>
این کدها همه فایلهای ._*resource و .DS و *.log و *.comment و در نهایت .ht* را مخفی میکنند.
استفاده از <FilesMatch>
امروزه استفاده از <FilesMatch> بر استفاده از <Files> ترجیح داده میشود چرا که شما میتوانید به کمک آن از عبارات منظم ( Regular expressions ) نیز در آن استفاده نمایید و کد بسیار زیبا و خواناتری را فراهم نمایید. مثلا به کد زیر دقت نمایید که برای فایلهای استایل که توسط PHP تولید میشوند نوشته شده است:
# handler for phpsuexec..
<FilesMatch "\.(css|style)$">
SetHandler application/x-httpd-php
</FilesMatch>
پس از نوشتن این کد هر فایلی که با عبارت منظم مذکور در کد همخوانی داشته باشد – که در اینجا فایلهای *.css و *.style هستند – اکنون توسط php مدیریت میشوند، به جای اینکه تنها توسط آپاچی درنظر گرفته شوند. شما میتوانید کلیه کدهایی که در آنها از <Files> استفاده کرده اید را با <FilesMatch> تغییر دهید و از مزایای آن بهره مند گردید.