با .htaccess قلب وب‏سایت خود را تحت کنترل بگیرید (قسمت اول)

iman_ebru

Active Member
اگر از وب‏سرور آپاچی برای وب‏سایت خود استفاده می‏کنید، دیگر نیازی نیست برای هر مشکل جزئی و کوچک، به وب‏مستر هوستینگ‏تان تماس بگیرید. با یادگیری قابلیت‏های مهم فایل .htaccess، می‏توانید کنترل کامل وب‏سایت خود را برعهده بگیرید.

فایل .htaccess یک فایل ساده اسکی (ASCII) می‏باشد که می‏توانید آن را به وسیله نرم‏افزارهای متنی ساده نظیر Notepad و یا SimpleText به وجود آورید. دقت داشته باشید که این فایل دارای هیچ نامی نمی‏باشد و فقط دارای پسوند است که پسوند آن، htaccess می‏باشد. برای درست کردن این فایل می‏توانید فایل متنی خود را که مثلا به صورت fantazio.txt می‏باشد، تغییر نام داده و آن را به صورت .htaccess درآورید.

تذکر: اگر از ویندوز استفاده می‏کنید و هنگام تغییر نام دادن فایل به .htaccess، پیغام خطایی مبنی بر اینکه «می‏بایست برای فایل خود نامی را اختیار کنید» دریافت می‏کنید، فایل را بر روی سرور آپلود کرده و سپس در سرور آن را تغییر نام دهید. این کار به وسیله نرم‏افزارهای اف‏تی‏پی نظیر CuteFTP یا AbsoluteFTP بسیار ساده می‏باشد.

در هنگام استفاده از فایل .htaccess، دانستن سه نکته از اهمیت به‏سزایی برخوردار است:

نکته اول: فایل .htaccess را می‏بایست به صورت ASCII آپلود کرده و مجوز دسترسی به آن را بر روی 644 (یا rw-r--r--) تنظیم نمایید.

نکته دوم: فایل .htaccess را می‏توانید به پوشه‏های مختلفی اعمال نمایید. به عنوان مثال اگر آن را بر روی root آپلود نمایید، تنظیمات آن به کل وب‏سایت اعمال خواهد شد و اگر آن را درون پوشه‏ای نظیر images/ آپلود نمایید، تنظیمات آن به پوشه images و زیرپوشه‏های آن اعمال خواهد شد.

نکته سوم: هر htaccess را می‏بایست درون یک خط تایپ نمایید. یعنی در انتهای هر دستور، می‏بایست یک‏بار کلید Enter را فشار دهید.

جلوگیری از لیست شدن محتویات یک پوشه

فرض کنید پوشه‏ای از تصاویر دارید و نمی‏خواهید که افراد غریبه، محتویان این پوشه را دیده و آن‏ها را تماشا کنند. برای این کار، سه راه وجود دارد:

1- ساخت یک صفحه index و قرار دادن آن در پوشه مورد نظر

2- استفاده از فایل .htaccess

3- استفاده از فایلهای HEADER و README

از آنجا که بحث ما در مورد فایل .htaccess می‏باشد، راه دوم را مورد بررسی قرار می‏دهیم. برای این کار می‏بایست از فرمان IndexIgnore استفاده نمایید:

IndexIgnore *

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

IndexIgnore *.gif *.jpg

در واقع این کد از لیست‏شدن تمامی فایل‏هایی که به .gif و .jpg ختم می‏شوند، جلوگیری می‏کند.

حال فرض کنید که سرور شما، به طور پیش‏فرض، از لیست‏شدن پوشه‏ها جلوگیری کرده است و شما می‏خواهید آن را تغییر دهید. برای این کار می‏توانید از دستور زیر استفاده کنید:

Options +Indexes


عوض کردن صفحه پیش‏فرض وب‏سایت

به طور کلی، تمامی وب‏سرورها از روی قانون خاصی صفحات وب را نشان می‏دهند. برای آنکه صفحات وب تنها به یک پسوند منحصربه‏فرد نظیر .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 برای نام فایل نیستید و از هر اسم دیگری نیز، می‏توانید استفاده کنید.

Redirects

شاید تا به حال برایتان اتفاق افتاده باشد که به وب‏سایتی مراجعه کرده باشید و سپس متوجه شوید که آدرس وب‏سایت به طور اتوماتیک عوض شده و در واقع شما به آدرس دیگری ارجاع داده‏شده‏اید. برای این‏کار می‏توانید از دستور 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 یکی از قابلیت‏های وحشت‏ناک به‏دردبخور آپاچی می‏باشد که توضیح مفصل آن، احتیاج به یک مقاله صدصفحه‏ای دارد.

صفحات خطا

به احتمال قوی با خطای معروف 404 در اینترنت سروکار داشته‏اید. خطایی که اعصاب آدم را به‏هم می‏زند. این خطا در صورتی ظاهر می‏شود که صفحه مورد نظر شما (به هر دلیل)، در دسترس نباشد. یعنی در واقع صفحه‏ای وجود نداشته باشد و شما آن را از مرورگر بخواهید.

وب‏سایت‏های حرفه‏ای و آن‏هایی که خواهان جذب مخاطب برای وب‏سایت‏هایشان هستند، این صفحات خطا را (که هر فرد با دیدن آن‏ها سریعا دکمه close را می‏زند) سفارشی می‏کنند. یعنی به جای آن خطای 404 تکراری، یک صفحه خطای مناسب (در فرمت وب‏سایت) می‏گذارند و به مخاطب راهنمایی‏هایی می‏دهند.

معمولا در این نوع صفحات خطا، بیوگرافی کوچکی از وب‏سایت و زمینه کاری آن نوشته شده و سپس مخاطب را (به وسیله لینک و یا اتوماتیک) به صفحه اصلی وب‏سایت ارجاع می‏دهند.

برای ساخت صفحات خطا (که تعداد آنها کم هم نیست!)، و ارجاع مخاطبین درصورت برخورد به صفحات خطای مختلف به آن‏ها، می‏توانید از کد زیر استفاده کنید:

کد:
ErrorDocument code /directory/filename.ext

به عنوان مثال کد زیر، مخاطب را در صورت مواجه شدن با خطای 404، به صفحه notfound.html ارجاع میدهد:

کد:
ErrorDocument 404 /notfound.html

منبع

ايمان :!: :roll: :wink:
 

Ghamnevis

Well-Known Member
مرسي ايمان..

مديريت ايندكس از امكانات جالب سرورهاي تحت آپاچي هستش.. البته توي اكثر هاست هاي لينوكس اين امكان هست ;)

استفاده كردم..

سايان
 

جدیدترین ارسال ها

بالا