Htaccess   

از دانشنامه جوملا فارسی - مامبو فارسی
(تغییرمسیر از 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

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