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 غیر فعال کنید:
یادتان نرود که mydomain.com را به آدرس وبسایت خود تغییر دهید. همچنین میتوانید کاری کنید در صورت استفاده از عکسهای سایت شما، به جای نمایش آنها، عکس مورد نظر شما نشان داده شود. مثلا اگر سایت A از عکسهای سایت شما استفاده کرد، عکسی را نمایش دهید که تبلیغ سایت شما باشد. برای اینکار میتوانید از کد زیر استفاده کنید:
آدرس عکس خود را در خط آخر کد تغییر دهید.
تذکر: mod_rewrite یکی از قابلیتهای وحشتناک بهدردبخور آپاچی میباشد که توضیح مفصل آن، احتیاج به یک مقاله صدصفحهای دارد.
صفحات خطا
به احتمال قوی با خطای معروف 404 در اینترنت سروکار داشتهاید. خطایی که اعصاب آدم را بههم میزند. این خطا در صورتی ظاهر میشود که صفحه مورد نظر شما (به هر دلیل)، در دسترس نباشد. یعنی در واقع صفحهای وجود نداشته باشد و شما آن را از مرورگر بخواهید.
وبسایتهای حرفهای و آنهایی که خواهان جذب مخاطب برای وبسایتهایشان هستند، این صفحات خطا را (که هر فرد با دیدن آنها سریعا دکمه close را میزند) سفارشی میکنند. یعنی به جای آن خطای 404 تکراری، یک صفحه خطای مناسب (در فرمت وبسایت) میگذارند و به مخاطب راهنماییهایی میدهند.
معمولا در این نوع صفحات خطا، بیوگرافی کوچکی از وبسایت و زمینه کاری آن نوشته شده و سپس مخاطب را (به وسیله لینک و یا اتوماتیک) به صفحه اصلی وبسایت ارجاع میدهند.
برای ساخت صفحات خطا (که تعداد آنها کم هم نیست!)، و ارجاع مخاطبین درصورت برخورد به صفحات خطای مختلف به آنها، میتوانید از کد زیر استفاده کنید:
به عنوان مثال کد زیر، مخاطب را در صورت مواجه شدن با خطای 404، به صفحه notfound.html ارجاع میدهد:
منبع
ايمان :!: :roll:
فایل .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: