Htaccess
محتویات
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
استفاده از مطالب دانشنامه جوملا فارسی - مامبو فارسی با ذکر منبع ( دانشنامه جوملا فارسی ) و لینک مستقیم به http://docs.joomlafarsi.com بلامانع است.
|