Htaccess: تفاوت بین نسخه‌ها   

از دانشنامه جوملا فارسی - مامبو فارسی
پرش به: ناوبری، جستجو
جز (Htaccess. به Htaccess منتقل شد)
 
(۲ نسخه‌ٔ میانی ویرایش شده توسط ۲ کاربر نشان داده نشده)
سطر ۱: سطر ۱:
==htaccess چيست ؟==
+
==htaccess چیست ؟==
  
يك فايل بسيار ساده با محيط تكست .
+
یك فایل بسیار ساده با محیط تكست .
  
چگونه ميتوان آنرا توليد كرد ؟
+
چگونه میتوان آنرا تولید كرد ؟
  
براي ساختن اين فايل تنها كافيست يك محيط تكست اديتور داشته باشيد . مثل notepad
+
برای ساختن این فایل تنها كافیست یك محیط تكست ادیتور داشته باشید . مثل notepad
  
اين فايل در كجا هست ؟
+
این فایل در كجا هست ؟
  
اين فايل در دايركتوري اصلي وبسايت شما قرار دارد و هر دايركتوري ديگري كه بخواهيد .
+
این فایل در دایركتوری اصلی وبسایت شما قرار دارد و هر دایركتوری دیگری كه بخواهید .
  
وظيفه اين فايل چيست ؟
+
وظیفه این فایل چیست ؟
  
تقريبا تمامي محدوديت هاي اعمالي بر آن دايركتوري را بر عهده دارد و ميتواند پيغام هاي خطا را مديريت كند و چندين وظيفه ديگر كه اگر كمي در تنظيمات آن قصور و غفلت كنيد شايد سايت شما بار گذاري نشود .
+
تقریبا تمامی محدودیت‌های اعمالی بر آن دایركتوری را بر عهده دارد و میتواند پیغام‌های خطا را مدیریت كند و چندین وظیفه دیگر كه اگر كمی در تنظیمات آن قصور و غفلت كنید شاید سایت شما بار گذاری نشود .
  
تمامي هاست ها از اين نوع گونه فايل حمايت ميكنند ؟
+
تمامی‌هاست‌ها از این نوع گونه فایل حمایت میكنند ؟
  
اين بستگي به ميزبان شما دارد اصولا از اين فايل حمايت ميكنند . اما اگر هم ميخواهيد مطمئن شويد ميتوانيد از وبمستر سرور خود بپرسيد .
+
این بستگی به میزبان شما دارد اصولا از این فایل حمایت میكنند . اما اگر هم میخواهید مطمئن شوید میتوانید از وبمستر سرور خود بپرسید .
  
قبل از شروع كار حتما يك نسخه بك آپ از فايلي كه هم اكنون در دايركتوري شما قرار دارد بگيريد بعضي وبسرور ها اين فايل را دارند اما داخلش هيچي نيست كه ديگر نيازي به پشتيبان گيري نيست .
+
قبل از شروع كار حتما یك نسخه بك آپ از فایلی كه هم اكنون در دایركتوری شما قرار دارد بگیرید بعضی وبسرور‌ها این فایل را دارند اما داخلش هیچی نیست كه دیگر نیازی به پشتیبان گیری نیست .
  
قبل از شروع آموزش بگويم كه اين آموزش مختص صاحبان وب سايت ها هست و كاربراني كه داراي سايت اختصاصي نيستند نميتوانند استفاده چنداني از اين مطلب بكنند اما خوب براي اطلاعات عمومي بد نيست به ادامه ان بپردازيد . فكر كنم تقريبا 90% صاحبان وب اين فايل را ديده باشند و بدون هيچ شكي در مورد ان از كنار ان گذشته باشند براي همين هم احتمال ميدهم يكي از موضوعاتي كه در موردش كمتر مقاله اي پيدا ميكنيد همين مطلب باشد . به هر حال تصميم گرفته ام كمي در مورد اين فايل بظاهر بي ارزش صفر كيلوبايتي توضيحاتي بدهم .
+
قبل از شروع آموزش بگویم كه این آموزش مختص صاحبان [[وب]] سایت‌ها هست و كاربرانی كه دارای سایت اختصاصی نیستند نمیتوانند استفاده چندانی از این مطلب بكنند اما خوب برای اطلاعات عمومی بد نیست به ادامه ان بپردازید . فكر كنم تقریبا 90% صاحبان [[وب]] این فایل را دیده باشند و بدون هیچ شكی در مورد ان از كنار ان گذشته باشند برای همین هم احتمال میدهم یكی از موضوعاتی كه در موردش كمتر مقاله ای پیدا میكنید همین مطلب باشد . به هر حال تصمیم گرفته ام كمی در مورد این فایل بظاهر بی ارزش صفر كیلوبایتی توضیحاتی بدهم .
  
با استفاده از اين فايل ميتوانيد پيغام هاي خطايي كه ظاهر ميشود را تغيير دهيد يا اينكه صفحه را بدون استفاده از redirector كنترل پنل redirect كنيد يا اينكه اجازه ليست گرفتن از دايركتوري خاصي از وبسايتتون رو محدود كنيد .
+
با استفاده از این فایل میتوانید پیغام‌های خطایی كه ظاهر میشود را تغییر دهید یا اینكه صفحه را بدون استفاده از redirector كنترل پنل redirect كنید یا اینكه اجازه لیست گرفتن از دایركتوری خاصی از وبسایتتون رو محدود كنید .
  
قبل از شروع كار مطمئن شويد كه اديتور شما خاصيت word wrap را غير فعال كرده است اگر نه خودتان آنرا غيرفعال كنيد .
+
قبل از شروع كار مطمئن شوید كه ادیتور شما خاصیت word wrap را غیر فعال كرده است اگر نه خودتان آنرا غیرفعال كنید .
  
فايل .htaccess در دايركتوري اصلي وبسايت شما يا سابدايركتوري شما قرار دارد دستوراتي كه در اين فايل قرار ميگيرد نه تنها دايركتوري جاري را تحت تاثير خود قرار ميدهد بلكه كليه زيردايركتوري هاي خود را نيز در بر ميگيرد . بنابراين اگر از اين فايل برروي دايركتوري اصلي خودتان استفاده كنيد تمامي سايت را در برميگيرد . در ضمن ميتوانيد اين فايل را در هر دايركتوري كه خواستيد نيز ايجاد كنيد تا محدوده كنترل در دست خودتان باشد . اگر با CSS كار كرده باشيد كار كردن با اين فايل هم تقريبا مشابه همان است و براي افرادي كه با ان اشنايي دارند اسانتر است به هر حال هر فايلي كه در دايركتوري ويژه اي قرار دارد به نزديكترين فايل htaccess خود مرتبط ميشود و ان htaccess ان فايل را كنترل ميكند .
+
فایل .htaccess در دایركتوری اصلی وبسایت شما یا سابدایركتوری شما قرار دارد دستوراتی كه در این فایل قرار میگیرد نه تنها دایركتوری جاری را تحت تاثیر خود قرار میدهد بلكه كلیه زیردایركتوری‌های خود را نیز در بر میگیرد . بنابراین اگر از این فایل برروی دایركتوری اصلی خودتان استفاده كنید تمامی سایت را در برمیگیرد . در ضمن میتوانید این فایل را در هر دایركتوری كه خواستید نیز ایجاد كنید تا محدوده كنترل در دست خودتان باشد . اگر با CSS كار كرده باشید كار كردن با این فایل هم تقریبا مشابه همان است و برای افرادی كه با ان اشنایی دارند اسانتر است به هر حال هر فایلی كه در دایركتوری ویژه ای قرار دارد به نزدیكترین فایل htaccess خود مرتبط میشود و ان htaccess ان فایل را كنترل میكند .
  
براي ساختن اين فايل هيچ نيازي به نرم افزار يا سخت افزار ويژه اي نداريد تنها به يك notepad يا هر پردازنده متني ديگري نيازمنديد .
+
برای ساختن این فایل هیچ نیازی به نرم افزار یا سخت افزار ویژه ای ندارید تنها به یك notepad یا هر پردازنده متنی دیگری نیازمندید .
  
براي ساختن اين فايل كه نامي ندارد و فقط هشت حرف براي نوع فرمت ان در نظر گرفته شده است “.htaccess”
+
برای ساختن این فایل كه نامی ندارد و فقط هشت حرف برای نوع فرمت ان در نظر گرفته شده است “.htaccess”
وقتي ميخواهيد اين فايل را در پردازنده متني خود ذخيره كنيد نام فايل به اين صورت ذخيره ميشود .htaccess.txt
+
وقتی میخواهید این فایل را در پردازنده متنی خود ذخیره كنید نام فایل به این صورت ذخیره میشود .htaccess.txt
  
براي اينكه چنين اتفاقي نيفتد كافيست از منوي file گزينه save as… را انتخاب كنيد در file type گزينه all files را انتخاب كنيد و سپس در file name تايپ كنيد “.htaccess” دات اچ تي اكسس را درون دو كوتيشن بگذاريد اگر نتوانستيد اين كار را بكنيد بعدا ميتوانيد از طريق كنترل پنل يا نرم افزار ftp خود نام فايل را عوض كنيد . در مورد استفاده از نرم افزار هاي ftp بگويم كه همانطور كه ميدانيد اينگونه نرم افزار ها براي اسودگي اتصال به وبسرورتان ميباشد كه فايل ها را در سه نوع upload ميكند كه سه گزينه Auto , binary, ASCII وقتي اين فايل را با ftp اپلود ميكنيد يادتان باشد نرم افزار شما در حالت ASCII باشد .
+
برای اینكه چنین اتفاقی نیفتد كافیست از منوی file گزینه save as… را انتخاب كنید در file type گزینه all files را انتخاب كنید و سپس در file name تایپ كنید “.htaccess” دات اچ تی اكسس را درون دو كوتیشن بگذارید اگر نتوانستید این كار را بكنید بعدا میتوانید از طریق كنترل پنل یا نرم افزار ftp خود نام فایل را عوض كنید . در مورد استفاده از نرم افزار‌های ftp بگویم كه همانطور كه میدانید اینگونه نرم افزار‌ها برای اسودگی اتصال به وبسرورتان میباشد كه فایل‌ها را در سه نوع upload میكند كه سه گزینه Auto , binary, ASCII وقتی این فایل را با ftp اپلود میكنید یادتان باشد نرم افزار شما در حالت ASCII باشد .
در ضمن يك مطلب ديگر هم در اين مورد كه بايد CHMOD كه مخفف Change MODe ميباشد را براي اين فايل عوض كنيد پرميشن اين فايل بايد 644 باشد يا RW-R—R— كه اين عمل هم براي افزايش امنيت ميباشد كه خوشبختانه همگي اشنايي با ان را داريد اما شايد بعدا بيشتر در مورد [[permission]] ها توضيح دادم .
+
در ضمن یك مطلب دیگر هم در این مورد كه باید CHMOD كه مخفف Change MODe میباشد را برای این فایل عوض كنید پرمیشن این فایل باید 644 باشد یا RW-R—R— كه این عمل هم برای افزایش امنیت میباشد كه خوشبختانه همگی اشنایی با ان را دارید اما شاید بعدا بیشتر در مورد [[permission]]‌ها توضیح دادم .
  
اين فايل به شما اجازه ميدهد كه شما كاربران و ويزيتور هاي خودتان را از صفحه اي به صفحه ديگر منتقل كنيد حتما شده است كه بخواهيد اين كاررا انجام دهيد مثلا در مورد خود من شما از parsx.com به weblog.parsx.com ميرويد البته من از اين روش استفاده نكرده ام اما دلايل ديگري نيز ميتواند عامل شود كه شما از اين ريدايركت استفاده كنيد شايد كاربر شما اشتباها ادرس صفحه اي از وبسايت شما را وارد كند يا اينكه شايد لينكي در وبسايت شما بنا به دليلي شكسته شده باشد و از بين رفته باشد و ان صفحه پاك شده باشد به جاي اينكه كاربر شما هيچ چيزي نبيند ميتوانيد انرا به صفحه اصلي سايت بسته به سليقه خودتان منتقلش كنيد .
+
این فایل به شما اجازه میدهد كه شما كاربران و ویزیتور‌های خودتان را از صفحه ای به صفحه دیگر منتقل كنید حتما شده است كه بخواهید این كاررا انجام دهید مثلا در مورد خود من شما از parsx.com به weblog.parsx.com میروید البته من از این روش استفاده نكرده ام اما دلایل دیگری نیز میتواند عامل شود كه شما از این ریدایركت استفاده كنید شاید كاربر شما اشتباها ادرس صفحه ای از وبسایت شما را وارد كند یا اینكه شاید لینكی در وبسایت شما بنا به دلیلی شكسته شده باشد و از بین رفته باشد و ان صفحه پاك شده باشد به جای اینكه كاربر شما هیچ چیزی نبیند میتوانید انرا به صفحه اصلی سایت بسته به سلیقه خودتان منتقلش كنید .
براي مثال فرض كنيد كاربري با يك پيغام خطا مواجه شد براي آنكه او را به صفحه ديگري منتقل كنيد بايد به اين صورت در فايل بنويسيد :
+
برای مثال فرض كنید كاربری با یك پیغام خطا مواجه شد برای آنكه او را به صفحه دیگری منتقل كنید باید به این صورت در فایل بنویسید :
  
 
ErrorDocument errornumber /filename.html
 
ErrorDocument errornumber /filename.html
  
به جاي errornumber شماره خطا را مينويسيد اصولا خطاي 404 زياد اتفاق ميفتد بنابراين ميتوانيد شماره 404 را بنويسيد .
+
به جای errornumber شماره خطا را مینویسید اصولا خطای 404 زیاد اتفاق میفتد بنابراین میتوانید شماره 404 را بنویسید .
  
اگر خواستيد تمامي پيغام خطاها را به فولدر خاصي ببريد به اينصورت عمل كنيد :
+
اگر خواستید تمامی پیغام خطاها را به فولدر خاصی ببرید به اینصورت عمل كنید :
  
 
ErrorDocument 404 /errorpages/notfound.html
 
ErrorDocument 404 /errorpages/notfound.html
  
در مورد شماره پيغام خطاها هم كمي بگويم :
+
در مورد شماره پیغام خطاها هم كمی بگویم :
  
400اين پيغام اصولا زماني ظاهر ميشود كه كاربر ادرس اشتباهي رفته باشد.
+
400این پیغام اصولا زمانی ظاهر میشود كه كاربر ادرس اشتباهی رفته باشد.
  
401وقتي كاربر به دايركتوري و يا جايي ميرود كه اجازه ورود به انرا ندارد.
+
401وقتی كاربر به دایركتوری و یا جایی میرود كه اجازه ورود به انرا ندارد.
  
403وقتي فايل طوري تنظيم شده است كه كاربر اجازه دسترسي به ان را ندارد.
+
403وقتی فایل طوری تنظیم شده است كه كاربر اجازه دسترسی به ان را ندارد.
  
 
404 not found.
 
404 not found.
  
500internal server error اشكال عموما از اسكريپت هاي داخليست .
+
500internal server error اشكال عموما از اسكریپت‌های داخلیست .
  
باز هم پيغام خطا داريم كه زياد به درد نميخورد .
+
باز هم پیغام خطا داریم كه زیاد به درد نمیخورد .
  
كاربرد ديگر اين فايل استفاده از رمز عبور است كه البته پيكر بندي ان كمي سخت تر از تنظيمات پيام هاي خطاست .
+
كاربرد دیگر این فایل استفاده از رمز عبور است كه البته پیكر بندی ان كمی سخت تر از تنظیمات پیام‌های خطاست .
  
ابتدا فايلي به اين نام ايجاد كنيد .htpasswd اين فايل هم خصوصياتي چون فايل .htaccess دارد اين فايل حاوي نام هاي كاربري و كلمه هاي عبور . كه بصورت زير انها را تعيين ميكنيد در اين فايل
+
ابتدا فایلی به این نام ایجاد كنید .htpasswd این فایل هم خصوصیاتی چون فایل .htaccess دارد این فایل حاوی نام‌های كاربری و كلمه‌های عبور . كه بصورت زیر انها را تعیین میكنید در این فایل
  
 
Username:password
 
Username:password
سطر ۷۴: سطر ۷۴:
  
  
حواستان باشد كه هر كدام در يك خط باشند و همچنين اشتباها فضاي space در اخر خط ها وارد نكنيد . در ضمن براي نام هاي كاربري كه مشكلي پيش نمي ايد اما براي كلمه هاي عبور براي افزايش امنيت بايد از نرم افزارهايي كه انها را تبديل ميكنند استفاده كنيد . كه بعدا كمي در اين مورد توضيح خواهم داد .
+
حواستان باشد كه هر كدام در یك خط باشند و همچنین اشتباها فضای space در اخر خط‌ها وارد نكنید . در ضمن برای نام‌های كاربری كه مشكلی پیش نمی‌اید اما برای كلمه‌های عبور برای افزایش امنیت باید از نرم افزارهایی كه انها را تبدیل میكنند استفاده كنید . كه بعدا كمی در این مورد توضیح خواهم داد .
  
يادتان باشد كه اين فايل را در فولدر هاي بالايي www يا public_html بگذاريد يعني در فولدر main .
+
یادتان باشد كه این فایل را در فولدر‌های بالایی www یا public_html بگذارید یعنی در فولدر main .
  
حال براي انكه مشخص كنيد كدام بخش از سايت يا كدام دايركتوري شامل رمز عبور بشوند بايد به اين صورت عمل كنيد در فايل htaccess خطوط زير را اضافه كنيد.
+
حال برای انكه مشخص كنید كدام بخش از سایت یا كدام دایركتوری شامل رمز عبور بشوند باید به این صورت عمل كنید در فایل htaccess خطوط زیر را اضافه كنید.
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
AuthUserFile /home/pathto/.htpasswd
 
AuthUserFile /home/pathto/.htpasswd
سطر ۹۳: سطر ۹۱:
 
</LIMIT>
 
</LIMIT>
  
</pre>
+
</source>
</code>
+
</div>
+
  
  
 +
دستورات فوق باعث میشوند كه در صورت نادرستی و عدم تطابق كلمه عبور با انچه كه در فایل مربوطه ثبت شده از ورود كاربر جلوگیری كند . بنابراین اگر كاربری خواست وارد دایركتوری شود كه بدینوسیله محافظت میشد یك منوی پاپ آپ ظاهر میشود كه نام كاربری و رمز عبور را میطلبد .
  
دستورات فوق باعث ميشوند كه در صورت نادرستي و عدم تطابق كلمه عبور با انچه كه در فايل مربوطه ثبت شده از ورود كاربر جلوگيري كند . بنابراين اگر كاربري خواست وارد دايركتوري شود كه بدينوسيله محافظت ميشد يك منوي پاپ آپ ظاهر ميشود كه نام كاربري و رمز عبور را ميطلبد .
+
اگر خواستید در یك فولدر تنها از یك فایل محافظت كنید و عملیات پسورد گذاری تنها برروی یك فایل انجام شود دستورات زیر را در فایل وارد كنید .
  
اگر خواستيد در يك فولدر تنها از يك فايل محافظت كنيد و عمليات پسورد گذاري تنها برروي يك فايل انجام شود دستورات زير را در فايل وارد كنيد .
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
<files "filename.cgi">
 
<files "filename.cgi">
سطر ۱۱۵: سطر ۱۰۸:
 
</files>
 
</files>
  
</pre>
+
</source>
</code>
+
</div>
+
 
+
  
  
براي محافظت از خود فايل .htaccess نيز ميتوانيد خط زير را وارد كنيد :
+
برای محافظت از خود فایل .htaccess نیز میتوانید خط زیر را وارد كنید :
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
<files ".htaccess">
 
<files ".htaccess">
سطر ۱۳۳: سطر ۱۲۱:
 
</files>
 
</files>
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
اگر هاست شما از این فایل پشتیبانی میكند اما از [[SSI]] پشتیبانی نمیكند كافیست خطوط زیر را وارد كنید تا از [[SSI]] هم پشتیبانی شود .
  
اگر هاست شما از اين فايل پشتيباني ميكند اما از [[SSI]] پشتيباني نميكند كافيست خطوط زير را وارد كنيد تا از [[SSI]] هم پشتيباني شود .
 
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
AddType text/html .shtml
 
AddType text/html .shtml
سطر ۱۴۸: سطر ۱۳۲:
 
Options Indexed FollowSymLinks Includes
 
Options Indexed FollowSymLinks Includes
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
خط اول بیان میكند كه كلیه فایل‌ها با پسوند [[shtml]] دارا صحت هستند خط دوم یك [[handler]] اضافه میكند خط سوم باعث میشود سرور این فایل‌ها را اجرا كند .
  
خط اول بيان ميكند كه كليه فايل ها با پسوند [[shtml]] دارا صحت هستند خط دوم يك [[handler]] اضافه ميكند خط سوم باعث ميشود سرور اين فايل ها را اجرا كند .
+
بنابراین شما خودتان بدون نیاز به درخواست از ادمین سرور توانستید [[SSI]] را فعال كنید .
  
بنابراين شما خودتان بدون نياز به درخواست از ادمين سرور توانستيد [[SSI]] را فعال كنيد .
+
اگر هم دوست دارید فایل‌های [[SSI]] بصورت جداگانه از فایل‌های [[html]] نباشند میتوانید خطوط زیر را اضافه كنید :
  
اگر هم دوست داريد فايل هاي [[SSI]] بصورت جداگانه از فايل هاي [[html]] نباشند ميتوانيد خطوط زير را اضافه كنيد :
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
AddType text/html .shtml .html . htm
 
AddType text/html .shtml .html . htm
سطر ۱۶۸: سطر ۱۴۷:
 
Options Indexes FollowSymLinks Includes
 
Options Indexes FollowSymLinks Includes
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
این خطوط باعث میشوند كه كلیه فایل‌ها با پسوند [[html]] نیز به سرور برای اجرا شدن منتقل شوند تا اگر كدی كه برای [[SSI]] باشد داشته باشد را اجرا كند و سپس صفحه شروع به بارگذاری كند .
  
اين خطوط باعث ميشوند كه كليه فايل ها با پسوند [[html]] نيز به سرور براي اجرا شدن منتقل شوند تا اگر كدي كه براي [[SSI]] باشد داشته باشد را اجرا كند و سپس صفحه شروع به بارگذاري كند .
+
==قطع دسترسی از طریق IP==
  
==قطع دسترسي از طريق IP==
+
با این روش شما میتوانید بازه خاصی از آدرس IP یا IP خاصی از فرد خاصی را اضافه كنید تا ان فرد صاحب IP نتواند وارد صفحه خاص یا كل وبسایت شود . البته در كنترل پنل‌ها اصولا این گزینه به صورت گرافیكی هست اما توجه كنید كه اگر در انجا به این كار اقدام كنید فرد مورد نظر از كل سایت محروم خواهد شد اما با استفاده از این عمل میتوانید IP خاصی را از صفحه خاصی محروم كنید . مثلا فرض كنید ادرس گوگل بت رو بگذاریم تا نتواند وارد صفحه خاصی شود .
  
با اين روش شما ميتوانيد بازه خاصي از آدرس IP يا IP خاصي از فرد خاصي را اضافه كنيد تا ان فرد صاحب IP نتواند وارد صفحه خاص يا كل وبسايت شود . البته در كنترل پنل ها اصولا اين گزينه به صورت گرافيكي هست اما توجه كنيد كه اگر در انجا به اين كار اقدام كنيد فرد مورد نظر از كل سايت محروم خواهد شد اما با استفاده از اين عمل ميتوانيد IP خاصي را از صفحه خاصي محروم كنيد . مثلا فرض كنيد ادرس گوگل بت رو بگذاريم تا نتواند وارد صفحه خاصي شود .
+
بنابراین خطوط زیر را اضافه كنید :
  
بنابراين خطوط زير را اضافه كنيد :
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
Order allow,deny
 
Order allow,deny
سطر ۱۹۰: سطر ۱۶۴:
 
Allow from all
 
Allow from all
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
به جای ipaddress میتوانید ادرس ایپی را بنویسید مثل : 172.16.204.100
  
به جاي ipaddress ميتوانيد ادرس ايپي را بنويسيد مثل : 172.16.204.100
+
خط اول میگوید كه شما میخواهید چكار كنید و خط دوم میگوید كه ادرس مشخص شده را ممنوع كند . البته میدانید كه هر فرد با هر قطع ارتباط از اینترنت مخصوصا سرویس‌های تلفنی بعد از هر بار اتصال ادرس ایپی انها عوض میشود یعنی 3 رقم اخر كه برای اینكه كل 256 ادرس را ممنوع كنید كافیست ارقام اخری را ننویسید .
  
خط اول ميگويد كه شما ميخواهيد چكار كنيد و خط دوم ميگويد كه ادرس مشخص شده را ممنوع كند . البته ميدانيد كه هر فرد با هر قطع ارتباط از اينترنت مخصوصا سرويس هاي تلفني بعد از هر بار اتصال ادرس ايپي انها عوض ميشود يعني 3 رقم اخر كه براي اينكه كل 256 ادرس را ممنوع كنيد كافيست ارقام اخري را ننويسيد .
+
خط اخر هم به دیگران اجازه میدهد كه وارد سایت شوند . در ضمن شما میتوانید نام دامنه را نیز ممنوع كنید به این صورت كه به جای ادرس ای پی بنویسید : .parsx.com
  
خط اخر هم به ديگران اجازه ميدهد كه وارد سايت شوند . در ضمن شما ميتوانيد نام دامنه را نيز ممنوع كنيد به اين صورت كه به جاي ادرس اي پي بنويسيد : .parsx.com
+
وقتی كاربر سعی در ورود به صقحه ویژه كه ممنوع شده است را دارد پیغام خطای 403 را میبیند . اگر میخواهید مثلا دایركتوری خاصی را از دسترسی همه ممنوع كنید اما اسكریپت‌ها و دیگر اجزایی كه به فایل نیاز دارند بتوانند به ان دسترسی پیدا كنند كافیست خط deny from all را اضافه كنید .
  
وقتي كاربر سعي در ورود به صقحه ويژه كه ممنوع شده است را دارد پيغام خطاي 403 را ميبيند . اگر ميخواهيد مثلا دايركتوري خاصي را از دسترسي همه ممنوع كنيد اما اسكريپت ها و ديگر اجزايي كه به فايل نياز دارند بتوانند به ان دسترسي پيدا كنند كافيست خط deny from all را اضافه كنيد .
+
==عوض كردن ایندكس فولدری خاص==
  
==عوض كردن ايندكس فولدري خاص==
+
اكثر میزبانهای [[وب]] فایلی كه وظیفه لود شدن در هنگام باز كردن دایركتوری خاصی را دارد با نام index قرار میدهند كه با استفاده از htaccess میتوانید انرا عوض كنید . خط زیر را به فایل اضافه كنید :
  
اكثر ميزبانهاي وب فايلي كه وظيفه لود شدن در هنگام باز كردن دايركتوري خاصي را دارد با نام index قرار ميدهند كه با استفاده از htaccess ميتوانيد انرا عوض كنيد . خط زير را به فايل اضافه كنيد :
+
<source lang="php">
 
+
 
+
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
DirectoryIndex filename.html
 
DirectoryIndex filename.html
  
</pre>
+
</source>
</code>
+
</div>
+
 
+
  
حتما ديده ايد كه اگر فايل index.html در دايركتوري نبود سرور فايل ديگري مثلا index.php را اجرا ميكند روش به اينصورت است كه در دستور فوق بعد از filename.html با يك فضاي خالي نام هاي ديگر را وارد ميكنيد . بنابراين سرور در دايركتوري ويژه ابتدا به دنبال فايل اولي و سپس به دنبال فايل دومي و به همين ترتيب جستجو ميكند . اگر هم هيچ يك از فايل ها پيدا نشد پيغام خطاي 404 ظاهر ميشود .
+
حتما دیده اید كه اگر فایل index.html در دایركتوری نبود سرور فایل دیگری مثلا index.php را اجرا میكند روش به اینصورت است كه در دستور فوق بعد از filename.html با یك فضای خالی نام‌های دیگر را وارد میكنید . بنابراین سرور در دایركتوری ویژه ابتدا به دنبال فایل اولی و سپس به دنبال فایل دومی و به همین ترتیب جستجو میكند . اگر هم هیچ یك از فایل‌ها پیدا نشد پیغام خطای 404 ظاهر میشود .
  
 
==Redirect توسط htaccess==
 
==Redirect توسط htaccess==
  
حتما ميدانيد كه راههاي زيادي براي ريدايركت كردن فايلي خاص به فايل ديگر وجود دارد اما بهترين كار همين است كه ميگويم
+
حتما میدانید كه راههای زیادی برای ریدایركت كردن فایلی خاص به فایل دیگر وجود دارد اما بهترین كار همین است كه میگویم
  
در فايل خط زير را وارد كنيد :
+
در فایل خط زیر را وارد كنید :
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
Redirect /OldDir/OldFile.html http://www.domainname.com/newdir
 
Redirect /OldDir/OldFile.html http://www.domainname.com/newdir
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
بنابراین دستور به شرح زیر است
  
بنابراين دستور به شرح زير است
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
Redirect oldlocation newlocation
 
Redirect oldlocation newlocation
  
</pre>
+
</source>
</code>
+
</div>
+
 
+
  
منتهي يادتان باشد كه newlocation بايد نام ادرس كامل سايت باشد .
+
منتهی یادتان باشد كه newlocation باید نام ادرس كامل سایت باشد .
  
  
==مخفي كردن محتويات دايركتوري==
+
==مخفی كردن محتویات دایركتوری==
  
شايد درون فولدرتان فايلي نداشته باشيد كه لود شود بنابراين ليست تمامي فايلهاي فولدر شما نمايان ميشود كه اين اصولا از لحاظ امنيتي هم مناسب نيست و اگر يادتان باشد در مطلبي كه در مورد ساخت سايت در ويندوز 2003 دادم گزينه اي داشتيم براي اينكه اين فايلها ليست نشوند همچنين در كنترل پنل هم چنين گزينه اي داريم اما خوب ان هم به صورت كلي در سايت ظاهر ميشود . به هر حال ميتوانيد خط زير را وارد كنيد :
+
شاید درون فولدرتان فایلی نداشته باشید كه لود شود بنابراین لیست تمامی فایلهای فولدر شما نمایان میشود كه این اصولا از لحاظ امنیتی هم مناسب نیست و اگر یادتان باشد در مطلبی كه در مورد ساخت سایت در ویندوز 2003 دادم گزینه ای داشتیم برای اینكه این فایلها لیست نشوند همچنین در كنترل پنل هم چنین گزینه ای داریم اما خوب ان هم به صورت كلی در سایت ظاهر میشود . به هر حال میتوانید خط زیر را وارد كنید :
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
Options -Indexes
 
Options -Indexes
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
یا خط زیر را وارد كنید
  
يا خط زير را وارد كنيد
 
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
IndexIgnore *
 
IndexIgnore *
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
اما عكس این عمل نیز میتواند اتفاق بیفتد یعنی به صورت پیشفرض در سرور تنظیم شده است كه فایلها لیست نشودند اما شما میتوانید این گزینه را با خط زیر غیزفعال كنید :
  
اما عكس اين عمل نيز ميتواند اتفاق بيفتد يعني به صورت پيشفرض در سرور تنظيم شده است كه فايلها ليست نشودند اما شما ميتوانيد اين گزينه را با خط زير غيزفعال كنيد :
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
Options +Indexes
 
Options +Indexes
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
اگر هم میخواهید فایلها لیست شوند اما گروه خاصی از انها مثلا عكس‌ها لیست نشوند به صورت زیر عمل كنید :
  
اگر هم ميخواهيد فايلها ليست شوند اما گروه خاصي از انها مثلا عكس ها ليست نشوند به صورت زير عمل كنيد :
 
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
IndexIgnore *.gif *.jpg
 
IndexIgnore *.gif *.jpg
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
بعضی سرور‌ها بعضی از فایلها را نمیشناسند با استفاده از این فایل میتوانید خط زیر را وارد كنید تا انها را بشناسد مثلا برای فایل‌های فلش میتوانید دستور زیر را وارد كنید
  
بعضي سرور ها بعضي از فايلها را نميشناسند با استفاده از اين فايل ميتوانيد خط زير را وارد كنيد تا انها را بشناسد مثلا براي فايل هاي فلش ميتوانيد دستور زير را وارد كنيد
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
AddType application/x-shockwave-flash swf
 
AddType application/x-shockwave-flash swf
  
</pre>
+
</source>
</code>
+
</div>
+
 
+
 
+
Addtype به فايل اعلان ميكند كه بايد نام فايلي جديد اعلان شود.
+
  
 +
Addtype به فایل اعلان میكند كه باید نام فایلی جدید اعلان شود.
  
ميدانيد كه هر فايلي كه از سرور سايت شما بارگذاري ميشود در پهناي باند شما موثر است حال فرض كنيد شما فايلي مثلا عكسي يا موسيقي براي دانلود در سايت گذاشته ايد ! خوب بالطبع شما با استفاده از فرمول و محاسباتي كه در ذهن خود انجام داده ايد و نسبت به تعداد كاربرانتان سنجيده ايد كه با پهناي باندتان مطابقت داشته باشد اما كافيست سايت هاي ديگري از فايل شما مثلا يك عكس شما استفاده كنند و عكس شما را در سايت خود قرار دهند و ادرس عكس ادرس همان عكسي باشد كه در سايت شما قرار دارد بنابراين از پهناي باند شما براي بار گذاري عكس استفاده ميشود لذا انروزي كه پهناي باند شما از حد خود ميگذرد شما بايد هزينه كنيد كه باز هم پهناي باند بخريد در صورتي كه ميتوانيد با استفاده از اين فايل از انجام چنين كاري ممانعت كنيد !منتهي قبلش بايد توجه داشته باشيد كه ايا هاست سرور شما از mod_rewrite پشتيباني ميكند يا خير ؟!
+
میدانید كه هر فایلی كه از سرور سایت شما بارگذاری میشود در پهنای باند شما موثر است حال فرض كنید شما فایلی مثلا عكسی یا موسیقی برای دانلود در سایت گذاشته اید ! خوب بالطبع شما با استفاده از فرمول و محاسباتی كه در ذهن خود انجام داده اید و نسبت به تعداد كاربرانتان سنجیده اید كه با پهنای باندتان مطابقت داشته باشد اما كافیست سایت‌های دیگری از فایل شما مثلا یك عكس شما استفاده كنند و عكس شما را در سایت خود قرار دهند و ادرس عكس ادرس همان عكسی باشد كه در سایت شما قرار دارد بنابراین از پهنای باند شما برای بار گذاری عكس استفاده میشود لذا انروزی كه پهنای باند شما از حد خود میگذرد شما باید هزینه كنید كه باز هم پهنای باند بخرید در صورتی كه میتوانید با استفاده از این فایل از انجام چنین كاری ممانعت كنید !منتهی قبلش باید توجه داشته باشید كه ایا هاست سرور شما از mod_rewrite پشتیبانی میكند یا خیر ؟!
  
اگر نميكند اين گزينه براي شما فايده اي نخواهد داشت و نميتوانيد با اين كار مبادرت ورزيد .
+
اگر نمیكند این گزینه برای شما فایده ای نخواهد داشت و نمیتوانید با این كار مبادرت ورزید .
  
به فولدري كه ان فايل يا مجموعه عكس هاي شما قرار دارد برويد و در فايل .htaccess ان دايركتوري خطوط زير را اضافه كنيد
+
به فولدری كه ان فایل یا مجموعه عكس‌های شما قرار دارد بروید و در فایل .htaccess ان دایركتوری خطوط زیر را اضافه كنید
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
RewriteEngine on
 
RewriteEngine on
سطر ۳۴۵: سطر ۲۷۴:
 
RewriteRule \.(gif|jpg)$ - [F]
 
RewriteRule \.(gif|jpg)$ - [F]
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
به جای mydomain.com نام دامنه خودتان را بنویسید مثلا parsx.com دستور فوق باعث میشود فایل‌های با پسوند gif jpg نتوانند در سایت‌های دیگر نمایش داده شوند اما شما میتوانید كار دیگری نیز بكنید مثلا بگذارید دیگران از عكس‌های شما استفاده كنند و سپس طی یك حركت ناجوانمردانه فایل htaccess را گونه ای تعویض كنید كه تمامی عكس‌ها و فایل‌ها با عكس دیگری نمایش داده شوند مثلا عكسی بگذارید كه ادرس سایت خودتان را بگذارید . مثلا freeservers چنین كاری كرده است . اگر به عكس سایت‌هایش لینك دهید نام سایت خودش نمایش داده میشود .
  
به جاي mydomain.com نام دامنه خودتان را بنويسيد مثلا parsx.com دستور فوق باعث ميشود فايلهاي با پسوند gif jpg نتوانند در سايت هاي ديگر نمايش داده شوند اما شما ميتوانيد كار ديگري نيز بكنيد مثلا بگذاريد ديگران از عكس هاي شما استفاده كنند و سپس طي يك حركت ناجوانمردانه فايل htaccess را گونه اي تعويض كنيد كه تمامي عكس ها و فايل ها با عكس ديگري نمايش داده شوند مثلا عكسي بگذاريد كه ادرس سايت خودتان را بگذاريد . مثلا freeservers چنين كاري كرده است . اگر به عكس سايت هايش لينك دهيد نام سايت خودش نمايش داده ميشود .
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
RewriteEngine on
 
RewriteEngine on
سطر ۳۶۲: سطر ۲۸۶:
 
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/badimage.gif [R,L]
 
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/badimage.gif [R,L]
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
به جای mydomain نام دامنه خودتان و ادرس عكس خودتان رابه جای ادرس فوق بگذارید .
  
به جاي mydomain نام دامنه خودتان و ادرس عكس خودتان رابه جاي ادرس فوق بگذاريد .
 
  
 +
==با .htaccess قلب وب‏سایت خود را تحت کنترل بگیرید==
  
==با .htaccess قلب وب‏سايت خود را تحت کنترل بگيريد==
+
اگر از [[وب]]‏سرور آپاچی برای وب‏سایت خود استفاده می‏کنید، دیگر نیازی نیست برای هر مشکل جزئی و کوچک، به وب‏مستر هاستینگ‏تان تماس بگیرید. با یادگیری قابلیت‏های مهم فایل .htaccess، می‏توانید کنترل کامل وب‏سایت خود را برعهده بگیرید.
  
اگر از وب‏سرور آپاچي براي وب‏سايت خود استفاده مي‏کنيد، ديگر نيازي نيست براي هر مشکل جزئي و کوچک، به وب‏مستر هاستينگ‏تان تماس بگيريد. با يادگيري قابليت‏هاي مهم فايل .htaccess، مي‏توانيد کنترل کامل وب‏سايت خود را برعهده بگيريد.
 
  
 +
در هنگام استفاده از فایل .htaccess، دانستن سه نکته از اهمیت به‏سزایی برخوردار است:
  
در هنگام استفاده از فايل .htaccess، دانستن سه نکته از اهميت به‏سزايي برخوردار است:
+
نکته اول: فایل .htaccess را می‏بایست به صورت ASCII آپلود کرده و مجوز دسترسی به آن را بر روی 644 (یا rw-r--r--) تنظیم نمایید.
  
نکته اول: فايل .htaccess را مي‏بايست به صورت ASCII آپلود کرده و مجوز دسترسي به آن را بر روي 644 (يا rw-r--r--) تنظيم نماييد.
+
نکته دوم: فایل .htaccess را می‏توانید به پوشه‏های مختلفی اعمال نمایید. به عنوان مثال اگر آن را بر روی root آپلود نمایید، تنظیمات آن به کل وب‏سایت اعمال خواهد شد و اگر آن را درون پوشه‏ای نظیر images/ آپلود نمایید، تنظیمات آن به پوشه images و زیرپوشه‏های آن اعمال خواهد شد.
  
نکته دوم: فايل .htaccess را مي‏توانيد به پوشه‏هاي مختلفي اعمال نماييد. به عنوان مثال اگر آن را بر روي root آپلود نماييد، تنظيمات آن به کل وب‏سايت اعمال خواهد شد و اگر آن را درون پوشه‏اي نظير images/ آپلود نماييد، تنظيمات آن به پوشه images و زيرپوشه‏هاي آن اعمال خواهد شد.
+
نکته سوم: هر htaccess را می‏بایست درون یک خط تایپ نمایید. یعنی در انتهای هر دستور، می‏بایست یک‏بار کلید Enter را فشار دهید.
  
نکته سوم: هر htaccess را مي‏بايست درون يک خط تايپ نماييد. يعني در انتهاي هر دستور، مي‏بايست يک‏بار کليد Enter را فشار دهيد.
 
  
  
 +
==جلوگیری از لیست شدن محتویات یک پوشه==
  
==جلوگيري از ليست شدن محتويات يک پوشه==
+
فرض کنید پوشه‏ای از تصاویر دارید و نمی‏خواهید که افراد غریبه، محتویان این پوشه را دیده و آن‏ها را تماشا کنند. برای این کار، سه راه وجود دارد:
  
فرض کنيد پوشه‏اي از تصاوير داريد و نمي‏خواهيد که افراد غريبه، محتويان اين پوشه را ديده و آن‏ها را تماشا کنند. براي اين کار، سه راه وجود دارد:
+
1- ساخت یک صفحه index و قرار دادن آن در پوشه مورد نظر
  
1- ساخت يک صفحه index و قرار دادن آن در پوشه مورد نظر
+
2- استفاده از فایل .htaccess
  
2- استفاده از فايل .htaccess
+
3- استفاده از فایل‌های HEADER و README
  
3- استفاده از فايلهاي HEADER و README
+
از آنجا که بحث ما در مورد فایل .htaccess می‏باشد، راه دوم را مورد بررسی قرار می‏دهیم. برای این کار می‏بایست از فرمان IndexIgnore استفاده نمایید:
  
از آنجا که بحث ما در مورد فايل .htaccess مي‏باشد، راه دوم را مورد بررسي قرار مي‏دهيم. براي اين کار مي‏بايست از فرمان IndexIgnore استفاده نماييد:
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
IndexIgnore *
 
IndexIgnore *
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
این کد از لیست‏شدن تمامی فایل‏های پوشه مورد نظر، جلوگیری می‏کند. حال فرض کنید که درون پوشه‏ای انواع‏واقسام فایل‏ها نظیر فایل‏های اچ‏تی‏ام‏ال و تصاویر دارید و می‏خواهید که فقط از لیست شدن تصاویر جلوگیری شود. بدین‏منظور می‏توانید از کد زیر استفاده کنید:
  
اين کد از ليست‏شدن تمامي فايل‏هاي پوشه مورد نظر، جلوگيري مي‏کند. حال فرض کنيد که درون پوشه‏اي انواع‏واقسام فايل‏ها نظير فايل‏هاي اچ‏تي‏ام‏ال و تصاوير داريد و مي‏خواهيد که فقط از ليست شدن تصاوير جلوگيري شود. بدين‏منظور مي‏توانيد از کد زير استفاده کنيد:
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
IndexIgnore *.gif *.jpg
 
IndexIgnore *.gif *.jpg
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
در واقع این کد از لیست‏شدن تمامی فایل‏هایی که به .gif و .jpg ختم می‏شوند، جلوگیری می‏کند.
  
در واقع اين کد از ليست‏شدن تمامي فايل‏هايي که به .gif و .jpg ختم مي‏شوند، جلوگيري مي‏کند.
+
حال فرض کنید که سرور شما، به طور پیش‏فرض، از لیست‏شدن پوشه‏ها جلوگیری کرده است و شما می‏خواهید آن را تغییر دهید. برای این کار می‏توانید از دستور زیر استفاده کنید:
  
حال فرض کنيد که سرور شما، به طور پيش‏فرض، از ليست‏شدن پوشه‏ها جلوگيري کرده است و شما مي‏خواهيد آن را تغيير دهيد. براي اين کار مي‏توانيد از دستور زير استفاده کنيد:
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
Options +Indexes
 
Options +Indexes
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
==عوض کردن صفحه پیش‏فرض وب‏سایت==
  
==عوض کردن صفحه پيش‏فرض وب‏سايت==
+
به طور کلی، تمامی [[وب]] ‏سرورها از روی قانون خاصی صفحات [[وب]] را نشان می‏دهند. برای آنکه صفحات [[وب]] تنها به یک پسوند منحصربه‏فرد نظیر .htm ختم نمی‏شوند و انواع‏و‏اقسام پسوند‏های مختلف، برای صفحات [[وب]] وجود دارد.
  
به طور کلي، تمامي وب‏سرورها از روي قانون خاصي صفحات وب را نشان مي‏دهند. براي آنکه صفحات وب تنها به يک پسوند منحصربه‏فرد نظير .htm ختم نمي‏شوند و انواع‏و‏اقسام پسوند‏هاي مختلف، براي صفحات وب وجود دارد.
+
حال فرض کنید که [[وب]]‏سرور شما، ابتدا فایل index.html را نشان می‏دهد و در صورت نبود آن، فایل‏های index.htm، index.php و ... شما می‏خواهید این روند را تغییر داده و فایل index.php را در اولویت قرار دهید. بدین منظور می‏بایست از دستور DirectoryIndex استفاده نمایید:
  
حال فرض کنيد که وب‏سرور شما، ابتدا فايل index.html را نشان مي‏دهد و در صورت نبود آن، فايل‏هاي index.htm، index.php و ... شما مي‏خواهيد اين روند را تغيير داده و فايل index.php را در اولويت قرار دهيد. بدين منظور مي‏بايست از دستور DirectoryIndex استفاده نماييد:
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
DirectoryIndex index.php index.cgi index.pl default.htm
 
DirectoryIndex index.php index.cgi index.pl default.htm
  
</pre>
+
</source>
</code>
+
</div>
+
 
+
  
کد بالا ابتدا به دنبال فايل index.php گشته و در صورت پيدا کردن آن، آن را به عنوان صفحه وب پيش‏فرض نمايش مي‏دهد. اگر فايل index.php پيدا نشد، سرور به دنبال فايل بعدي که index.cgi مي‏باشد گشته و همين روال، ادامه پيدا مي‏کند. دقت داشته باشيد که شما حتما مجبور به استفاده از index براي نام فايل نيستيد و از هر اسم ديگري نيز، مي‏توانيد استفاده کنيد.
+
کد بالا ابتدا به دنبال فایل index.php گشته و در صورت پیدا کردن آن، آن را به عنوان صفحه وب پیش‏فرض نمایش می‏دهد. اگر فایل index.php پیدا نشد، سرور به دنبال فایل بعدی که index.cgi می‏باشد گشته و همین روال، ادامه پیدا می‏کند. دقت داشته باشید که شما حتما مجبور به استفاده از index برای نام فایل نیستید و از هر اسم دیگری نیز، می‏توانید استفاده کنید.
  
  
سطر ۴۶۳: سطر ۳۶۴:
 
==Redirects==
 
==Redirects==
  
شايد تا به حال برايتان اتفاق افتاده باشد که به وب‏سايتي مراجعه کرده باشيد و سپس متوجه شويد که آدرس وب‏سايت به طور اتوماتيک عوض شده و در واقع شما به آدرس ديگري ارجاع داده‏شده‏ايد. براي اين‏کار مي‏توانيد از دستور Redirect استفاده نماييد:
+
شاید تا به حال برایتان اتفاق افتاده باشد که به وب‏سایتی مراجعه کرده باشید و سپس متوجه شوید که آدرس وب‏سایت به طور اتوماتیک عوض شده و در واقع شما به آدرس دیگری ارجاع داده‏شده‏اید. برای این‏کار می‏توانید از دستور Redirect استفاده نمایید:
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html
 
Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
همچنین می‏توانید یک پوشه را به پوشه دیگر ارجاع دهید:
  
همچنين مي‏توانيد يک پوشه را به پوشه ديگر ارجاع دهيد:
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
Redirect /olddirectory http://yoursite.com/newdirectory/
 
Redirect /olddirectory http://yoursite.com/newdirectory/
  
</pre>
+
</source>
</code>
+
</div>
+
 
+
  
 
==Hot Linkin==
 
==Hot Linkin==
  
در جامعه وب‏مسترها، عبارت Hot Linkin يک عبارت نفرت‏برانگيز است که از آن به عنوان «نقره‏داغ وب‏مسترها» نيز ياد مي‏شود. اما معناي آن چيست؟
+
در جامعه وب‏مسترها، عبارت Hot Linkin یک عبارت نفرت‏برانگیز است که از آن به عنوان «نقره‏داغ وب‏مسترها» نیز یاد می‏شود. اما معنای آن چیست؟
  
فرض کنيد داراي يک سايت عکاسي هستيد که روزانه تعداد زيادي عکس در زمينه‏هاي مختلف را در آن آپلود مي‏کنيد و در اختيار عموم قرار مي‏دهيد. حال فرد ديگري از عکس‏هاي شما در وب‏سايت خود استفاده مي‏کند. اين کار نه تنها براي شما هيچ سودي نخواهد داشت، بلکه از پهناي باند شما (BW) خواهد کاست و در نتيجه به زحمت و هزينه خواهيد افتاد.
+
فرض کنید دارای یک سایت عکاسی هستید که روزانه تعداد زیادی عکس در زمینه‏های مختلف را در آن آپلود می‏کنید و در اختیار عموم قرار می‏دهید. حال فرد دیگری از عکس‏های شما در وب‏سایت خود استفاده می‏کند. این کار نه تنها برای شما هیچ سودی نخواهد داشت، بلکه از پهنای باند شما (BW) خواهد کاست و در نتیجه به زحمت و هزینه خواهید افتاد.
  
همچنين شما نمي‏توانيد بفهميد که چه وب‏سايت‏هايي از عکس‏هاي شما استفاده کرده‏اند تا به آن‏ها اخطار دهيد.
+
همچنین شما نمی‏توانید بفهمید که چه وب‏سایت‏هایی از عکس‏های شما استفاده کرده‏اند تا به آن‏ها اخطار دهید.
  
براي جلوگيري از چنين عملي، مي‏توانيد Hot Linkin را به وسيله mod_rewrite غير فعال کنيد:
+
برای جلوگیری از چنین عملی، می‏توانید Hot Linkin را به وسیله mod_rewrite غیر فعال کنید:
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
RewriteEngine on
 
RewriteEngine on
سطر ۵۱۱: سطر ۴۰۰:
 
RewriteRule \.(gif|jpg)$ - [F]
 
RewriteRule \.(gif|jpg)$ - [F]
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
یادتان نرود که mydomain.com را به آدرس وب‏سایت خود تغییر دهید. همچنین می‏توانید کاری کنید در صورت استفاده از عکس‏های سایت شما، به جای نمایش آن‏ها، عکس مورد نظر شما نشان داده شود. مثلا اگر سایت A از عکس‏های سایت شما استفاده کرد، عکسی را نمایش دهید که تبلیغ سایت شما باشد. برای این‏کار می‏توانید از کد زیر استفاده کنید:
  
يادتان نرود که mydomain.com را به آدرس وب‏سايت خود تغيير دهيد. همچنين مي‏توانيد کاري کنيد در صورت استفاده از عکس‏هاي سايت شما، به جاي نمايش آن‏ها، عکس مورد نظر شما نشان داده شود. مثلا اگر سايت A از عکس‏هاي سايت شما استفاده کرد، عکسي را نمايش دهيد که تبليغ سايت شما باشد. براي اين‏کار مي‏توانيد از کد زير استفاده کنيد:
 
  
 
+
<source lang="php">
<div dir=ltr>
+
<code>
+
<pre>
+
  
 
RewriteEngine on
 
RewriteEngine on
سطر ۵۲۸: سطر ۴۱۲:
 
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/nasty.gif [R,L]
 
RewriteRule \.(gif|jpg)$ http://www.mydomain.com/nasty.gif [R,L]
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
آدرس عکس خود را در خط آخر کد تغییر دهید.
  
آدرس عکس خود را در خط آخر کد تغيير دهيد.
+
تذکر: mod_rewrite یکی از قابلیت‏های وحشت‏ناک به‏دردبخور آپاچی می‏باشد که توضیح مفصل آن، احتیاج به یک مقاله صدصفحه‏ای دارد.
 
+
تذکر: mod_rewrite يکي از قابليت‏هاي وحشت‏ناک به‏دردبخور آپاچي مي‏باشد که توضيح مفصل آن، احتياج به يک مقاله صدصفحه‏اي دارد.
+
 
+
  
  
 
==صفحات خطا==
 
==صفحات خطا==
  
به احتمال قوي با خطاي معروف 404 در اينترنت سروکار داشته‏ايد. خطايي که اعصاب آدم را به‏هم مي‏زند. اين خطا در صورتي ظاهر مي‏شود که صفحه مورد نظر شما (به هر دليل)، در دسترس نباشد. يعني در واقع صفحه‏اي وجود نداشته باشد و شما آن را از مرورگر بخواهيد.
+
به احتمال قوی با خطای معروف 404 در اینترنت سروکار داشته‏اید. خطایی که اعصاب آدم را به‏هم می‏زند. این خطا در صورتی ظاهر می‏شود که صفحه مورد نظر شما (به هر دلیل)، در دسترس نباشد. یعنی در واقع صفحه‏ای وجود نداشته باشد و شما آن را از مرورگر بخواهید.
  
وب‏سايت‏هاي حرفه‏اي و آن‏هايي که خواهان جذب مخاطب براي وب‏سايت‏هايشان هستند، اين صفحات خطا را (که هر فرد با ديدن آن‏ها سريعا دکمه close را مي‏زند) سفارشي مي‏کنند. يعني به جاي آن خطاي 404 تکراري، يک صفحه خطاي مناسب (در فرمت وب‏سايت) مي‏گذارند و به مخاطب راهنمايي‏هايي مي‏دهند.
+
وب‏سایت‏های حرفه‏ای و آن‏هایی که خواهان جذب مخاطب برای وب‏سایت‏هایشان هستند، این صفحات خطا را (که هر فرد با دیدن آن‏ها سریعا دکمه close را می‏زند) سفارشی می‏کنند. یعنی به جای آن خطای 404 تکراری، یک صفحه خطای مناسب (در فرمت وب‏سایت) می‏گذارند و به مخاطب راهنمایی‏هایی می‏دهند.
  
معمولا در اين نوع صفحات خطا، بيوگرافي کوچکي از وب‏سايت و زمينه کاري آن نوشته شده و سپس مخاطب را (به وسيله لينک و يا اتوماتيک) به صفحه اصلي وب‏سايت ارجاع مي‏دهند.
+
معمولا در این نوع صفحات خطا، بیوگرافی کوچکی از وب‏سایت و زمینه کاری آن نوشته شده و سپس مخاطب را (به وسیله لینک و یا اتوماتیک) به صفحه اصلی وب‏سایت ارجاع می‏دهند.
  
براي ساخت صفحات خطا (که تعداد آنها کم هم نيست!)، و ارجاع مخاطبين درصورت برخورد به صفحات خطاي مختلف به آن‏ها، مي‏توانيد از کد زير استفاده کنيد:
+
برای ساخت صفحات خطا (که تعداد آنها کم هم نیست!)، و ارجاع مخاطبین درصورت برخورد به صفحات خطای مختلف به آن‏ها، می‏توانید از کد زیر استفاده کنید:
  
  
<div dir=ltr>
+
<source lang="php">
<code>
+
<pre>
+
  
 
ErrorDocument code /directory/filename.ext
 
ErrorDocument code /directory/filename.ext
  
</pre>
+
</source>
</code>
+
</div>
+
  
 +
به عنوان مثال کد زیر، مخاطب را در صورت مواجه شدن با خطای 404، به صفحه notfound.html ارجاع میدهد:
  
به عنوان مثال کد زير، مخاطب را در صورت مواجه شدن با خطاي 404، به صفحه notfound.html ارجاع ميدهد:
 
  
 +
<source lang="php">
  
<div dir=ltr>
+
ErrorDocument 404 /notfound.html
<code>
+
<pre>
+
  
ErrorDocument 404 /notfound.html
+
</source>
  
</pre>
+
==منبع==
</code>
+
iranmodern.com
</div>
+
  
 +
{{کپی رایت}}
  
==منبع==
+
[[رده:اطلاعات عمومی]]
iranmodern.com
+

نسخهٔ کنونی تا ‏۲۲ مهٔ ۲۰۱۱، ساعت ۱۲:۰۶

htaccess چیست ؟

یك فایل بسیار ساده با محیط تكست .

چگونه میتوان آنرا تولید كرد ؟

برای ساختن این فایل تنها كافیست یك محیط تكست ادیتور داشته باشید . مثل notepad

این فایل در كجا هست ؟

این فایل در دایركتوری اصلی وبسایت شما قرار دارد و هر دایركتوری دیگری كه بخواهید .

وظیفه این فایل چیست ؟

تقریبا تمامی محدودیت‌های اعمالی بر آن دایركتوری را بر عهده دارد و میتواند پیغام‌های خطا را مدیریت كند و چندین وظیفه دیگر كه اگر كمی در تنظیمات آن قصور و غفلت كنید شاید سایت شما بار گذاری نشود .

تمامی‌هاست‌ها از این نوع گونه فایل حمایت میكنند ؟

این بستگی به میزبان شما دارد اصولا از این فایل حمایت میكنند . اما اگر هم میخواهید مطمئن شوید میتوانید از وبمستر سرور خود بپرسید .

قبل از شروع كار حتما یك نسخه بك آپ از فایلی كه هم اكنون در دایركتوری شما قرار دارد بگیرید بعضی وبسرور‌ها این فایل را دارند اما داخلش هیچی نیست كه دیگر نیازی به پشتیبان گیری نیست .

قبل از شروع آموزش بگویم كه این آموزش مختص صاحبان وب سایت‌ها هست و كاربرانی كه دارای سایت اختصاصی نیستند نمیتوانند استفاده چندانی از این مطلب بكنند اما خوب برای اطلاعات عمومی بد نیست به ادامه ان بپردازید . فكر كنم تقریبا 90% صاحبان وب این فایل را دیده باشند و بدون هیچ شكی در مورد ان از كنار ان گذشته باشند برای همین هم احتمال میدهم یكی از موضوعاتی كه در موردش كمتر مقاله ای پیدا میكنید همین مطلب باشد . به هر حال تصمیم گرفته ام كمی در مورد این فایل بظاهر بی ارزش صفر كیلوبایتی توضیحاتی بدهم .

با استفاده از این فایل میتوانید پیغام‌های خطایی كه ظاهر میشود را تغییر دهید یا اینكه صفحه را بدون استفاده از redirector كنترل پنل redirect كنید یا اینكه اجازه لیست گرفتن از دایركتوری خاصی از وبسایتتون رو محدود كنید .

قبل از شروع كار مطمئن شوید كه ادیتور شما خاصیت word wrap را غیر فعال كرده است اگر نه خودتان آنرا غیرفعال كنید .

فایل .htaccess در دایركتوری اصلی وبسایت شما یا سابدایركتوری شما قرار دارد دستوراتی كه در این فایل قرار میگیرد نه تنها دایركتوری جاری را تحت تاثیر خود قرار میدهد بلكه كلیه زیردایركتوری‌های خود را نیز در بر میگیرد . بنابراین اگر از این فایل برروی دایركتوری اصلی خودتان استفاده كنید تمامی سایت را در برمیگیرد . در ضمن میتوانید این فایل را در هر دایركتوری كه خواستید نیز ایجاد كنید تا محدوده كنترل در دست خودتان باشد . اگر با CSS كار كرده باشید كار كردن با این فایل هم تقریبا مشابه همان است و برای افرادی كه با ان اشنایی دارند اسانتر است به هر حال هر فایلی كه در دایركتوری ویژه ای قرار دارد به نزدیكترین فایل htaccess خود مرتبط میشود و ان htaccess ان فایل را كنترل میكند .

برای ساختن این فایل هیچ نیازی به نرم افزار یا سخت افزار ویژه ای ندارید تنها به یك notepad یا هر پردازنده متنی دیگری نیازمندید .

برای ساختن این فایل كه نامی ندارد و فقط هشت حرف برای نوع فرمت ان در نظر گرفته شده است “.htaccess” وقتی میخواهید این فایل را در پردازنده متنی خود ذخیره كنید نام فایل به این صورت ذخیره میشود .htaccess.txt

برای اینكه چنین اتفاقی نیفتد كافیست از منوی file گزینه save as… را انتخاب كنید در file type گزینه all files را انتخاب كنید و سپس در file name تایپ كنید “.htaccess” دات اچ تی اكسس را درون دو كوتیشن بگذارید اگر نتوانستید این كار را بكنید بعدا میتوانید از طریق كنترل پنل یا نرم افزار ftp خود نام فایل را عوض كنید . در مورد استفاده از نرم افزار‌های ftp بگویم كه همانطور كه میدانید اینگونه نرم افزار‌ها برای اسودگی اتصال به وبسرورتان میباشد كه فایل‌ها را در سه نوع upload میكند كه سه گزینه Auto , binary, ASCII وقتی این فایل را با ftp اپلود میكنید یادتان باشد نرم افزار شما در حالت ASCII باشد . در ضمن یك مطلب دیگر هم در این مورد كه باید CHMOD كه مخفف Change MODe میباشد را برای این فایل عوض كنید پرمیشن این فایل باید 644 باشد یا RW-R—R— كه این عمل هم برای افزایش امنیت میباشد كه خوشبختانه همگی اشنایی با ان را دارید اما شاید بعدا بیشتر در مورد permission‌ها توضیح دادم .

این فایل به شما اجازه میدهد كه شما كاربران و ویزیتور‌های خودتان را از صفحه ای به صفحه دیگر منتقل كنید حتما شده است كه بخواهید این كاررا انجام دهید مثلا در مورد خود من شما از parsx.com به weblog.parsx.com میروید البته من از این روش استفاده نكرده ام اما دلایل دیگری نیز میتواند عامل شود كه شما از این ریدایركت استفاده كنید شاید كاربر شما اشتباها ادرس صفحه ای از وبسایت شما را وارد كند یا اینكه شاید لینكی در وبسایت شما بنا به دلیلی شكسته شده باشد و از بین رفته باشد و ان صفحه پاك شده باشد به جای اینكه كاربر شما هیچ چیزی نبیند میتوانید انرا به صفحه اصلی سایت بسته به سلیقه خودتان منتقلش كنید . برای مثال فرض كنید كاربری با یك پیغام خطا مواجه شد برای آنكه او را به صفحه دیگری منتقل كنید باید به این صورت در فایل بنویسید :

ErrorDocument errornumber /filename.html

به جای errornumber شماره خطا را مینویسید اصولا خطای 404 زیاد اتفاق میفتد بنابراین میتوانید شماره 404 را بنویسید .

اگر خواستید تمامی پیغام خطاها را به فولدر خاصی ببرید به اینصورت عمل كنید :

ErrorDocument 404 /errorpages/notfound.html

در مورد شماره پیغام خطاها هم كمی بگویم :

400این پیغام اصولا زمانی ظاهر میشود كه كاربر ادرس اشتباهی رفته باشد.

401وقتی كاربر به دایركتوری و یا جایی میرود كه اجازه ورود به انرا ندارد.

403وقتی فایل طوری تنظیم شده است كه كاربر اجازه دسترسی به ان را ندارد.

404 not found.

500internal server error اشكال عموما از اسكریپت‌های داخلیست .

باز هم پیغام خطا داریم كه زیاد به درد نمیخورد .

كاربرد دیگر این فایل استفاده از رمز عبور است كه البته پیكر بندی ان كمی سخت تر از تنظیمات پیام‌های خطاست .

ابتدا فایلی به این نام ایجاد كنید .htpasswd این فایل هم خصوصیاتی چون فایل .htaccess دارد این فایل حاوی نام‌های كاربری و كلمه‌های عبور . كه بصورت زیر انها را تعیین میكنید در این فایل

Username:password

Username:password

Username:password


حواستان باشد كه هر كدام در یك خط باشند و همچنین اشتباها فضای space در اخر خط‌ها وارد نكنید . در ضمن برای نام‌های كاربری كه مشكلی پیش نمی‌اید اما برای كلمه‌های عبور برای افزایش امنیت باید از نرم افزارهایی كه انها را تبدیل میكنند استفاده كنید . كه بعدا كمی در این مورد توضیح خواهم داد .

یادتان باشد كه این فایل را در فولدر‌های بالایی www یا public_html بگذارید یعنی در فولدر main .

حال برای انكه مشخص كنید كدام بخش از سایت یا كدام دایركتوری شامل رمز عبور بشوند باید به این صورت عمل كنید در فایل htaccess خطوط زیر را اضافه كنید.


<source lang="php">

AuthUserFile /home/pathto/.htpasswd AuthType Basic AuthName "Secret Place"

<LIMIT GET POST> require valid-user </LIMIT>

</source>


دستورات فوق باعث میشوند كه در صورت نادرستی و عدم تطابق كلمه عبور با انچه كه در فایل مربوطه ثبت شده از ورود كاربر جلوگیری كند . بنابراین اگر كاربری خواست وارد دایركتوری شود كه بدینوسیله محافظت میشد یك منوی پاپ آپ ظاهر میشود كه نام كاربری و رمز عبور را میطلبد .

اگر خواستید در یك فولدر تنها از یك فایل محافظت كنید و عملیات پسورد گذاری تنها برروی یك فایل انجام شود دستورات زیر را در فایل وارد كنید .


<source lang="php">

<files "filename.cgi"> AuthUserFile /home/pathto/.htpasswd AuthType Basic AuthName "Secret Place" require valid-user </files>

</source>


برای محافظت از خود فایل .htaccess نیز میتوانید خط زیر را وارد كنید :


<source lang="php">

<files ".htaccess"> order allow,deny deny from all </files>

</source>

اگر هاست شما از این فایل پشتیبانی میكند اما از SSI پشتیبانی نمیكند كافیست خطوط زیر را وارد كنید تا از SSI هم پشتیبانی شود .


<source lang="php">

AddType text/html .shtml AddHandler server-parsed .shtml Options Indexed FollowSymLinks Includes

</source>

خط اول بیان میكند كه كلیه فایل‌ها با پسوند shtml دارا صحت هستند خط دوم یك handler اضافه میكند خط سوم باعث میشود سرور این فایل‌ها را اجرا كند .

بنابراین شما خودتان بدون نیاز به درخواست از ادمین سرور توانستید SSI را فعال كنید .

اگر هم دوست دارید فایل‌های SSI بصورت جداگانه از فایل‌های html نباشند میتوانید خطوط زیر را اضافه كنید :


<source lang="php">

AddType text/html .shtml .html . htm AddHandler server-prased .shtml .html .htm Options Indexes FollowSymLinks Includes

</source>

این خطوط باعث میشوند كه كلیه فایل‌ها با پسوند html نیز به سرور برای اجرا شدن منتقل شوند تا اگر كدی كه برای SSI باشد داشته باشد را اجرا كند و سپس صفحه شروع به بارگذاری كند .

قطع دسترسی از طریق IP

با این روش شما میتوانید بازه خاصی از آدرس IP یا IP خاصی از فرد خاصی را اضافه كنید تا ان فرد صاحب IP نتواند وارد صفحه خاص یا كل وبسایت شود . البته در كنترل پنل‌ها اصولا این گزینه به صورت گرافیكی هست اما توجه كنید كه اگر در انجا به این كار اقدام كنید فرد مورد نظر از كل سایت محروم خواهد شد اما با استفاده از این عمل میتوانید IP خاصی را از صفحه خاصی محروم كنید . مثلا فرض كنید ادرس گوگل بت رو بگذاریم تا نتواند وارد صفحه خاصی شود .

بنابراین خطوط زیر را اضافه كنید :


<source lang="php">

Order allow,deny Deny from ipaddress Allow from all

</source>

به جای ipaddress میتوانید ادرس ایپی را بنویسید مثل : 172.16.204.100

خط اول میگوید كه شما میخواهید چكار كنید و خط دوم میگوید كه ادرس مشخص شده را ممنوع كند . البته میدانید كه هر فرد با هر قطع ارتباط از اینترنت مخصوصا سرویس‌های تلفنی بعد از هر بار اتصال ادرس ایپی انها عوض میشود یعنی 3 رقم اخر كه برای اینكه كل 256 ادرس را ممنوع كنید كافیست ارقام اخری را ننویسید .

خط اخر هم به دیگران اجازه میدهد كه وارد سایت شوند . در ضمن شما میتوانید نام دامنه را نیز ممنوع كنید به این صورت كه به جای ادرس ای پی بنویسید : .parsx.com

وقتی كاربر سعی در ورود به صقحه ویژه كه ممنوع شده است را دارد پیغام خطای 403 را میبیند . اگر میخواهید مثلا دایركتوری خاصی را از دسترسی همه ممنوع كنید اما اسكریپت‌ها و دیگر اجزایی كه به فایل نیاز دارند بتوانند به ان دسترسی پیدا كنند كافیست خط deny from all را اضافه كنید .

عوض كردن ایندكس فولدری خاص

اكثر میزبانهای وب فایلی كه وظیفه لود شدن در هنگام باز كردن دایركتوری خاصی را دارد با نام index قرار میدهند كه با استفاده از htaccess میتوانید انرا عوض كنید . خط زیر را به فایل اضافه كنید :

<source lang="php">

DirectoryIndex filename.html

</source>

حتما دیده اید كه اگر فایل index.html در دایركتوری نبود سرور فایل دیگری مثلا index.php را اجرا میكند روش به اینصورت است كه در دستور فوق بعد از filename.html با یك فضای خالی نام‌های دیگر را وارد میكنید . بنابراین سرور در دایركتوری ویژه ابتدا به دنبال فایل اولی و سپس به دنبال فایل دومی و به همین ترتیب جستجو میكند . اگر هم هیچ یك از فایل‌ها پیدا نشد پیغام خطای 404 ظاهر میشود .

Redirect توسط htaccess

حتما میدانید كه راههای زیادی برای ریدایركت كردن فایلی خاص به فایل دیگر وجود دارد اما بهترین كار همین است كه میگویم

در فایل خط زیر را وارد كنید :


<source lang="php">

Redirect /OldDir/OldFile.html http://www.domainname.com/newdir

</source>

بنابراین دستور به شرح زیر است


<source lang="php">

Redirect oldlocation newlocation

</source>

منتهی یادتان باشد كه newlocation باید نام ادرس كامل سایت باشد .


مخفی كردن محتویات دایركتوری

شاید درون فولدرتان فایلی نداشته باشید كه لود شود بنابراین لیست تمامی فایلهای فولدر شما نمایان میشود كه این اصولا از لحاظ امنیتی هم مناسب نیست و اگر یادتان باشد در مطلبی كه در مورد ساخت سایت در ویندوز 2003 دادم گزینه ای داشتیم برای اینكه این فایلها لیست نشوند همچنین در كنترل پنل هم چنین گزینه ای داریم اما خوب ان هم به صورت كلی در سایت ظاهر میشود . به هر حال میتوانید خط زیر را وارد كنید :


<source lang="php">

Options -Indexes

</source>

یا خط زیر را وارد كنید


<source lang="php">

IndexIgnore *

</source>

اما عكس این عمل نیز میتواند اتفاق بیفتد یعنی به صورت پیشفرض در سرور تنظیم شده است كه فایلها لیست نشودند اما شما میتوانید این گزینه را با خط زیر غیزفعال كنید :


<source lang="php">

Options +Indexes

</source>

اگر هم میخواهید فایلها لیست شوند اما گروه خاصی از انها مثلا عكس‌ها لیست نشوند به صورت زیر عمل كنید :


<source lang="php">

IndexIgnore *.gif *.jpg

</source>

بعضی سرور‌ها بعضی از فایلها را نمیشناسند با استفاده از این فایل میتوانید خط زیر را وارد كنید تا انها را بشناسد مثلا برای فایل‌های فلش میتوانید دستور زیر را وارد كنید


<source lang="php">

AddType application/x-shockwave-flash swf

</source>

Addtype به فایل اعلان میكند كه باید نام فایلی جدید اعلان شود.

میدانید كه هر فایلی كه از سرور سایت شما بارگذاری میشود در پهنای باند شما موثر است حال فرض كنید شما فایلی مثلا عكسی یا موسیقی برای دانلود در سایت گذاشته اید ! خوب بالطبع شما با استفاده از فرمول و محاسباتی كه در ذهن خود انجام داده اید و نسبت به تعداد كاربرانتان سنجیده اید كه با پهنای باندتان مطابقت داشته باشد اما كافیست سایت‌های دیگری از فایل شما مثلا یك عكس شما استفاده كنند و عكس شما را در سایت خود قرار دهند و ادرس عكس ادرس همان عكسی باشد كه در سایت شما قرار دارد بنابراین از پهنای باند شما برای بار گذاری عكس استفاده میشود لذا انروزی كه پهنای باند شما از حد خود میگذرد شما باید هزینه كنید كه باز هم پهنای باند بخرید در صورتی كه میتوانید با استفاده از این فایل از انجام چنین كاری ممانعت كنید !منتهی قبلش باید توجه داشته باشید كه ایا هاست سرور شما از mod_rewrite پشتیبانی میكند یا خیر ؟!

اگر نمیكند این گزینه برای شما فایده ای نخواهد داشت و نمیتوانید با این كار مبادرت ورزید .

به فولدری كه ان فایل یا مجموعه عكس‌های شما قرار دارد بروید و در فایل .htaccess ان دایركتوری خطوط زیر را اضافه كنید


<source lang="php">

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F]

</source>

به جای mydomain.com نام دامنه خودتان را بنویسید مثلا parsx.com دستور فوق باعث میشود فایل‌های با پسوند gif jpg نتوانند در سایت‌های دیگر نمایش داده شوند اما شما میتوانید كار دیگری نیز بكنید مثلا بگذارید دیگران از عكس‌های شما استفاده كنند و سپس طی یك حركت ناجوانمردانه فایل htaccess را گونه ای تعویض كنید كه تمامی عكس‌ها و فایل‌ها با عكس دیگری نمایش داده شوند مثلا عكسی بگذارید كه ادرس سایت خودتان را بگذارید . مثلا freeservers چنین كاری كرده است . اگر به عكس سایت‌هایش لینك دهید نام سایت خودش نمایش داده میشود .


<source lang="php">

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.mydomain.com/badimage.gif [R,L]

</source>

به جای mydomain نام دامنه خودتان و ادرس عكس خودتان رابه جای ادرس فوق بگذارید .


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

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


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

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

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

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


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

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

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

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

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

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


<source lang="php">

IndexIgnore *

</source>

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


<source lang="php">

IndexIgnore *.gif *.jpg

</source>

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

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


<source lang="php">

Options +Indexes

</source>

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

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

حال فرض کنید که وب‏سرور شما، ابتدا فایل index.html را نشان می‏دهد و در صورت نبود آن، فایل‏های index.htm، index.php و ... شما می‏خواهید این روند را تغییر داده و فایل index.php را در اولویت قرار دهید. بدین منظور می‏بایست از دستور DirectoryIndex استفاده نمایید:


<source lang="php">

DirectoryIndex index.php index.cgi index.pl default.htm

</source>

کد بالا ابتدا به دنبال فایل index.php گشته و در صورت پیدا کردن آن، آن را به عنوان صفحه وب پیش‏فرض نمایش می‏دهد. اگر فایل index.php پیدا نشد، سرور به دنبال فایل بعدی که index.cgi می‏باشد گشته و همین روال، ادامه پیدا می‏کند. دقت داشته باشید که شما حتما مجبور به استفاده از index برای نام فایل نیستید و از هر اسم دیگری نیز، می‏توانید استفاده کنید.


Redirects

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


<source lang="php">

Redirect /olddirectory/oldfile.html http://yoursite.com/newdirectory/newfile.html

</source>

همچنین می‏توانید یک پوشه را به پوشه دیگر ارجاع دهید:


<source lang="php">

Redirect /olddirectory http://yoursite.com/newdirectory/

</source>

Hot Linkin

در جامعه وب‏مسترها، عبارت Hot Linkin یک عبارت نفرت‏برانگیز است که از آن به عنوان «نقره‏داغ وب‏مسترها» نیز یاد می‏شود. اما معنای آن چیست؟

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

همچنین شما نمی‏توانید بفهمید که چه وب‏سایت‏هایی از عکس‏های شما استفاده کرده‏اند تا به آن‏ها اخطار دهید.

برای جلوگیری از چنین عملی، می‏توانید Hot Linkin را به وسیله mod_rewrite غیر فعال کنید:


<source lang="php">

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F]

</source>

یادتان نرود که mydomain.com را به آدرس وب‏سایت خود تغییر دهید. همچنین می‏توانید کاری کنید در صورت استفاده از عکس‏های سایت شما، به جای نمایش آن‏ها، عکس مورد نظر شما نشان داده شود. مثلا اگر سایت A از عکس‏های سایت شما استفاده کرد، عکسی را نمایش دهید که تبلیغ سایت شما باشد. برای این‏کار می‏توانید از کد زیر استفاده کنید:


<source lang="php">

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.mydomain.com/nasty.gif [R,L]

</source>

آدرس عکس خود را در خط آخر کد تغییر دهید.

تذکر: mod_rewrite یکی از قابلیت‏های وحشت‏ناک به‏دردبخور آپاچی می‏باشد که توضیح مفصل آن، احتیاج به یک مقاله صدصفحه‏ای دارد.


صفحات خطا

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

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

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

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


<source lang="php">

ErrorDocument code /directory/filename.ext

</source>

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


<source lang="php">

ErrorDocument 404 /notfound.html

</source>

منبع

iranmodern.com

8.pngاستفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.