بخش 1 :
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 خطوط زير را اضافه كنيد

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

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

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

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

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

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

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

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

خط اول بيان ميكند كه كليه فايل ها با پسوند shtml دارا صحت هستند خط دوم يك handler اضافه ميكند خط سوم باعث ميشود سرور اين فايل ها را اجرا كند .
بنابراين شما خودتان بدون نياز به درخواست از ادمين سرور توانستيد SSI را فعال كنيد .
اگر هم دوست داريد فايل هاي SSI بصورت جداگانه از فايل هاي html نباشند ميتوانيد خطوط زير را اضافه كنيد :

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

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

Order allow,deny
Deny from ipaddress
Allow from all

به جاي ipaddress ميتوانيد ادرس ايپي را بنويسيد مثل : 172.16.204.100
خط اول ميگويد كه شما ميخواهيد چكار كنيد و خط دوم ميگويد كه ادرس مشخص شده را ممنوع كند . البته ميدانيد كه هر فرد با هر قطع ارتباط از اينترنت مخصوصا سرويس هاي تلفني بعد از هر بار اتصال ادرس ايپي انها عوض ميشود يعني 3 رقم اخر كه براي اينكه كل 256 ادرس را ممنوع كنيد كافيست ارقام اخري را ننويسيد .
خط اخر هم به ديگران اجازه ميدهد كه وارد سايت شوند . در ضمن شما ميتوانيد نام دامنه را نيز ممنوع كنيد به اين صورت كه به جاي ادرس اي پي بنويسيد : .parsx.com
وقتي كاربر سعي در ورود به صقحه ويژه كه ممنوع شده است را دارد پيغام خطاي 403 را ميبيند . اگر ميخواهيد مثلا دايركتوري خاصي را از دسترسي همه ممنوع كنيد اما اسكريپت ها و ديگر اجزايي كه به فايل نياز دارند بتوانند به ان دسترسي پيدا كنند كافيست خط deny from all را اضافه كنيد .
عوض كردن ايندكس فولدري خاص
اكثر ميزبانهاي وب فايلي كه وظيفه لود شدن در هنگام باز كردن دايركتوري خاصي را دارد با نام index قرار ميدهند كه با استفاده از htaccess ميتوانيد انرا عوض كنيد . خط زير را به فايل اضافه كنيد :

DirectoryIndex filename.html

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

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

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

Redirect oldlocation newlocation

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

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

IndexIgnore *

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

Options +Indexes

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

IndexIgnore *.gif *.jpg

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

AddType application/x-shockwave-flash swf

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

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

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

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

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


بخش 2
با .htaccess قلب وب‏سايت خود را تحت کنترل بگيريد (قسمت اول)
اگر از وب‏سرور آپاچي براي وب‏سايت خود استفاده مي‏کنيد، ديگر نيازي نيست براي هر مشکل جزئي و کوچک، به وب‌مستر هوستينگ‏تان تماس بگيريد. با يادگيري قابليت‏هاي مهم فايل .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


منبع:iranmodern.com