آموزش کامل Htaccess و نکته های آن

در این مطلب نگاهی به فایل Htaccess خواهیم داشت و آن را بصورت کامل و نکته به نکته وصف خواهیم کرد.اما در مرحله اول خواهیم گفت که htaccess چیست؟فایل htaccess یک فایل پیکربندی و تنظیماتی در وب سرورهای apache می‌باشد که، زمانی که یک فایل htaccess را در یک دایرکتوری قرار می‌دهیم این فایل توسط وب سرور apache شناسایی و اجرا می‌شود.این فایل قادر به تغییر تنظیمات apache وب سرور می‌باشد که امکانی را در apache فعال یا غیر فعال کند، امکاناتی نظیر تغییر مسیر دادن کاربر (redirect)، تعیین صفحه‌ی ۴۰۴، پسورد گذاشتن بر روی یه شاخه از سایت، بلاک کردن ip و … م یباشد.

 

جهت دیدن آموزش کامل Htaccess و نکته های آن به ادامه مطلب مراجعه فرمایید

 

۱–روشن و آماده استفاده کردن mod_rewrite :

mod_rewrite را می توانید از درون فایل htaccess خود اجرا کنید برای اینکه ماژول mod_rewrite را آماده استفاده کنید

از کد زیر در فایل htaccess استفاده کنید. بهترین مکان برای قرار دادن این کد در همان سطر اول htaccess می باشد.

RewriteEngine on

فراموش نکنید که htaccess به بزرگی و کوچکی حروف حساس است

و اینکه این کد را در خط اول همه فایل های htaccess ای که در آن ها از mod_rewrite استفاده می کنید قرار دهید.

================================

۲- حالت نمونه کد های mod_rewrite

حالت ساده و نمونه mod_rewrite بصورت زیر است

[p]
RewriteRule Pattern Substitution [Flag(s)]
[/p]

================================

۳ – یک انتقال ساده

اگر خواستید یه انتقال ساده از یک url به یک url دیگر داشته باشید می توانید از کد زیر استفاده کنید

[p]
RewriteRule ^fileone.html$ filetwo.html
[/p]

این کد باعث میشه که اگر سرور درخواستی در مورد بازکردن فایل fileone.html دریافت کرد فایل filetwo.html باز شود.

================================

۴ – ممنوع الورود کردن یک آی پی خاص

اگر خواستید از ورود شخصی با آی پی خاص به وبسایتتان جلوگیری کنید می توانید از کد زیر استفاده کنید

RewriteCond %{REMOTE_ADDR} ^(A.B.C.D)$
RewriteRule ^/* http://www.domain.com/sorry.html [L]

به جای A B C D اجزای چهارگانه IP مورد نظر رو وارد کنید و به جایhttp://www.domain.com/sorry.html آدرس مورد نظر که مثلا می تونه یک صفحه حاوی پیغام هشدار باشه رو وارد کنید

================================

۶- خلاص شدن از دست Query Strings

اگر بیشتر url ها در وبسایت شما چیزی مانند

http://www.domain.com/home.html?example=12345abcd

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

RewriteCond %{QUERY_STRING} ^id=456&lid=789.*  [NC]
RewriteRule (.*) http://www.domain.com/$1? [R=301]

با این کد نه تنها از دست query ه راحت میشید بلکه از دست اون علامت سوال هم را حت میشید .

این کار یه جنبه امنیتی هم داره و اون جلوگیری از هک شدن وبسایت از طریق sql injection هست .

================================

۷- تصویر پیشفرض

با استفاده از این کد اگر یکی از تصاویر وبسایتتون دچار مشکلی شد و به هر دلیلی لود نشد تصویری که اینجا معرفی میکنید جایگزین اون میشه . با استفاده این کد ظاهری حرفه ای تر به وبسایتتون بدین

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^images/.*.jpg$ /images/default.jpg [L]
با جایگزین کردن images/default.jpg/ با آدرس تصویر پیشفرض و تغییر دادن /images و jpg. محل تصاویر و فرمت تصاویری رو که می خواهید در صورت اشکال با images/default.jpg/ جایگزین بشه ، کد رو اختصاصی و آماده استفاده در سرور خودتون کنید

================================

۸ – جلوگیری از hotlinking

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

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com/ .*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

در کد بالا domain.com رو با دامین سایت خودتون عوض کنید

================================

۹ – منتقل کردن از چند دامین به یک دامین دیگر

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com/ .*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

اگر از چند دامین برای آدرس دهی با سایتتان استفاده می کنید این امر ممکن است که هر دو دامین را به یک دامین دیگر روی سرور بفرستید

فقط به جای http://www.domain.net و domain.net دو دامین خودتون رو بنویسید و به جای http://domain.net آدرس جدید رو بنویسید

================================

۱۰- فراموش نکنید که :

* mod_rewrite از درون فایل htaccess اجرا می شود

* دستورات در فایل htaccess به حروف بزرگ و کوچک حساسند

* همیشه قبل از دست کاری فایل htaccess از اون نسخه پشتیبان تهیه کنید

منبع : سبز اندیشان
———————–
———————————

htaccess چیست ؟یک فایل بسیار ساده با محیط تکست .چگونه میتوان آنرا تولید کرد ؟برای ساختن این فایل تنها کافیست یک محیط تکست ادیتور داشته باشید . مثل notepadاین فایل در کجا هست ؟این فایل در دایرکتوری اصلی وبسایت شما قرار دارد و هر دایرکتوری دیگری که بخواهید .وظیفه این فایل چیست ؟تقریبا تمامی محدودیت‌های اعمالی بر آن دایرکتوری را بر عهده داردو میتواند پیغام‌های خطا را مدیریت کند و چندین وظیفه دیگر که اگر کمی در تنظیمات آن قصور و غفلت کنیدشاید سایت شما بار گذاری نشود .تمامی‌هاست‌ها از این نوع گونه فایل حمایت میکنند ؟این بستگی به میزبان شما دارد اصولا از این فایل حمایت میکنند .

اما اگر هم میخواهید مطمئن شوید میتوانید از وبمستر سرور خود بپرسید .

قبل از شروع کار حتما یک نسخه بک آپ از فایلی که هم اکنون در دایرکتوری شما قرار دارد بگیرید

قبل از شروع آموزش بگویم که این آموزش مختص صاحبان وب سایت‌ها هست

و کاربرانی که دارای سایت اختصاصی نیستند نمیتوانند استفاده چندانی از این مطلب بکنند

اما خوب برای اطلاعات عمومی بد نیست به ادامه ان بپردازید .

فکر کنم تقریبا ۹۰% صاحبان وب این فایل را دیده باشند و بدون هیچ شکی در مورد ان از کنار ان گذشته باشند

برای همین هم احتمال میدهم یکی از موضوعاتی که در موردش کمتر مقاله ای پیدا میکنید همین مطلب باشد .

به هر حال تصمیم گرفته ام کمی در مورد این فایل بظاهر بی ارزش صفر کیلوبایتی توضیحاتی بدهم .

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

با استفاده از این فایل میتوانید پیغام‌های خطایی که ظاهر میشود را تغییر دهید

یا اینکه صفحه را بدون استفاده از 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 میباشد را برای این فایل عوض کنید

پرمیشن این فایل باید ۶۴۴ باشد یا RW-R—R— که این عمل هم برای افزایش امنیت میباشد

که خوشبختانه همگی اشنایی با ان را دارید اما شاید بعدا بیشتر در مورد permission‌ها توضیح دادم .

این فایل به شما اجازه میدهد که شما کاربران و ویزیتور‌های خودتان را از صفحه ای به صفحه دیگر منتقل کنید حتما شده است

که بخواهید این کاررا انجام دهید مثلا در مورد خود من شما از parsx.com به weblog.parsx.com میروید البته من از این روش استفاده نکرده ام

اما دلایل دیگری نیز میتواند عامل شود که شما از این ریدایرکت استفاده کنید

شاید کاربر شما اشتباها ادرس صفحه ای از وبسایت شما را وارد کند یا اینکه شاید لینکی در وبسایت شما بنا به دلیلی شکسته شده باشد

و از بین رفته باشد و ان صفحه پاک شده باشد به جای اینکه کاربر شما هیچ چیزی نبیند میتوانید

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

برای مثال فرض کنید کاربری با یک پیغام خطا مواجه شد برای آنکه او را به صفحه دیگری منتقل کنید باید به این صورت در فایل بنویسید :

ErrorDocument errornumber /filename.html

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

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

ErrorDocument 404 /errorpages/notfound.html

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

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

۴۰۱وقتی کاربر به دایرکتوری و یا جایی میرود که اجازه ورود به انرا ندارد.

۴۰۳وقتی فایل طوری تنظیم شده است که کاربر اجازه دسترسی به ان را ندارد.

۴۰۴ not found.

۵۰۰internal 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 میتوانید ادرس ایپی را بنویسید مثل : ۱۷۲٫۱۶٫۲۰۴٫۱۰۰

خط اول میگوید که شما میخواهید چکار کنید و خط دوم میگوید که ادرس مشخص شده را ممنوع کند .

البته میدانید که هر فرد با هر قطع ارتباط از اینترنت مخصوصا سرویس‌های تلفنی بعد از هر بار اتصال ادرس ایپی انها عوض میشود

یعنی ۳ رقم اخر که برای اینکه کل ۲۵۶ ادرس را ممنوع کنید کافیست ارقام اخری را ننویسید .

خط اخر هم به دیگران اجازه میدهد که وارد سایت شوند .

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

وقتی کاربر سعی در ورود به صقحه ویژه که ممنوع شده است را دارد پیغام خطای ۴۰۳ را میبیند .

اگر میخواهید مثلا دایرکتوری خاصی را از دسترسی همه ممنوع کنید

اما اسکریپت‌ها و دیگر اجزایی که به فایل نیاز دارند بتوانند به ان دسترسی پیدا کنند کافیست خط deny from all را اضافه کنید .

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

اکثر میزبانهای وب فایلی که وظیفه لود شدن در هنگام باز کردن دایرکتوری خاصی را دارد

با نام index قرار میدهند که با استفاده از htaccess میتوانید انرا عوض کنید . خط زیر را به فایل اضافه کنید :

DirectoryIndex filename.html

حتما دیده اید که اگر فایل index.html در دایرکتوری نبود سرور فایل دیگری مثلا index.php را اجرا میکند

روش به اینصورت است که در دستور فوق بعد از filename.html با یک فضای خالی نام‌های دیگر را وارد میکنید .

بنابراین سرور در دایرکتوری ویژه ابتدا به دنبال فایل اولی و سپس به دنبال فایل دومی و به همین ترتیب جستجو میکند .

اگر هم هیچ یک از فایل‌ها پیدا نشد پیغام خطای ۴۰۴ ظاهر میشود .

Redirec توسط htaccess

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

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

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

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

Redirect oldlocation newlocation

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

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

شاید درون فولدرتان فایلی نداشته باشید که لود شود بنابراین لیست تمامی فایلهای فولدر شما نمایان میشود

که این اصولا از لحاظ امنیتی هم مناسب نیست و اگر یادتان باشد

در مطلبی که در مورد ساخت سایت در ویندوز ۲۰۰۳ دادم گزینه ای داشتیم برای اینکه این فایلها لیست نشوند

همچنین در کنترل پنل هم چنین گزینه ای داریم اما خوب ان هم به صورت کلی در سایت ظاهر میشود .

به هر حال میتوانید خط زیر را وارد کنید :

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 قلب وب‏سایت خود را تحت کنترل بگیرید .

اگر از وب‏سرور آپاچی برای وب‏سایت خود استفاده می‏کنید، دیگر نیازی نیست

برای هر مشکل جزئی و کوچک، به وب‏مستر هاستینگ‏تان تماس بگیرید.

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

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

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

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

به عنوان مثال اگر آن را بر روی root آپلود نمایید، تنظیمات آن به کل وب‏سایت اعمال خواهد شد

و اگر آن را درون پوشه‏ای نظیر images/ آپلود نمایید، تنظیمات آن به پوشه images و زیرپوشه‏های آن اعمال خواهد شد.

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

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

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

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

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

۳- استفاده از فایل‌های 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 یکی از قابلیت‏های وحشت‏ناک به‏دردبخور آپاچی می‏باشد

که توضیح مفصل آن، احتیاج به یک مقاله صدصفحه‏ای دارد.

صفحات خطا

به احتمال قوی با خطای معروف ۴۰۴ در اینترنت سروکار داشته‏اید.

خطایی که اعصاب آدم را به‏هم می‏زند.

این خطا در صورتی ظاهر می‏شود که صفحه مورد نظر شما (به هر دلیل)، در دسترس نباشد.

یعنی در واقع صفحه‏ای وجود نداشته باشد و شما آن را از مرورگر بخواهید.

وب‏سایت‏های حرفه‏ای و آن‏هایی که خواهان جذب مخاطب برای وب‏سایت‏هایشان هستند،

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

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

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

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

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

به آن‏ها، می‏توانید از کد زیر استفاده کنید:

ErrorDocument code /directory/filename.ext

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

ErrorDocument 404 /notfound.html