تور لحظه آخری
امروز : جمعه ، 2 شهریور 1403    احادیث و روایات:  امام صادق (ع):روزه سپرى است از آفت هاى دنيا و پرده اى است از عذاب آخرت.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

کاشت ابرو

لمینت دندان

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

تور دبی

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

طراحی کاتالوگ فوری

تعمیرات مک بوک

Future Innovate Tech

پی جو مشاغل برتر شیراز

قیمت فرش

آموزش کیک پزی در تهران

لوله بازکنی تهران

میز جلو مبلی

آراد برندینگ

سایبان ماشین

بهترین وکیل تهران

خرید دانه قهوه

دانلود رمان

وکیل کرج

خرید تیشرت مردانه

خرید یخچال خارجی

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ابزار دقیق

خرید ریبون

موسسه خیریه

خرید سی پی کالاف

واردات از چین

سلامتی راحت به دست نمی آید

حرف آخر

دستگاه تصفیه آب صنعتی

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

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

کپسول پرگابالین

خوب موزیک

کرکره برقی تبریز

خرید نهال سیب سبز

قیمت پنجره دوجداره

سایت ایمالز

بازسازی ساختمان

طراحی سایت تهران سایت

دیوار سبز

irspeedy

درج اگهی ویژه

 






آمار وبسایت

 تعداد کل بازدیدها : 1812190385




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

آموزش .htaccess


واضح آرشیو وب فارسی:سایت ریسک: View Full Version : آموزش .htaccess mohsen_ed09-01-2009, 12:20 AMسلام به همگی مدتی هست قراره این مطلب رو توضیح بدم اما مشکلات نمیزاشت الان که دیدم تایم خالی دارم فکر کردم بهترین کار نوشتن این آموزشه درخواست ها و سوالات متعدد کاربران آپاچی سرور در مورد این مطلب خیلی زیاده اگه یه سرچ کوچک داشته باشید کلی سوال در مورد این موضوع خواهید دید از طرفی من لحاظ میکنم که کلیه کسانی که دارند این مقاله رو می خونند حتما اطلاعاتی ابتدایی در مورد htaccess دارند و میدونید حکایت چیه . . . همونطور که خیلی از شما میدونید این مبحث خیلی طولانی هست از این رو خلاصه نویسی توی این مقاله خیلی زیاده اما مسلما منظور من برای کاربران حرفه ای و آماتور روشنه یه سری مثال ها رو از اینترنت پیدا کردم یعنی کرده بودم برمیگرده به سال ها پیش . . . برای شروع فکر میکنم همه بدونید که فايل .htaccess يا Distributed Configuration Files در واقع فايلهاي مخصوص كنترل آپاچي هست مکان خاصی ندارند روی هر شاخه و زیر شاخه تاثیر میزاره در واقع در کنار فایل های معمولی مثل php ,html قرار میگیره یعنی کاملا در دسترس هستند نام این فایل ها .htaccess هست یعنی صرفا همین -البته میشه یه سری تنظیمات رو دستکاری کرد و نام رو تغییر داد- اين فايلها از تگهاي مخصوص آپاچي استفاده ميكنن البته cgi script هم مي پذيرن کاربردها : كاربرد اول- تغيير صفحات خطا برای نمایش صفحات خطا مثل 404 يا 500 و ... میتونید صفحات دلخواه خودتون رو طراحي و به اين طريق نمایش بدید مسلما خیلی حرفه ای هست وب سایت هایی که برای کوچکترین موارد پیش بینی صورت بگیره کد: ErrorDocument 404 /404.html ErrorDocument 500 /500.html كاربرد دوم- نمایش پسوند دلخواه صفحات (add mime type) يك راه امنيتي كه من واقعا پيشنهاد ميكنم واسه حفاظت از اسكريپت هاي php شما اينه كه اونا php نباشن !! بله يعني مثلا asp يا jsp باشن اينطوري یه مقدار مطلب پیچیده میشه برای تشخیص کد: AddType application/x-httpd-php .asp .jsp Addtype ميگه كه ما ميخوايم يه فرمت جديد بشناسونيم بعد نوع اون فايلهاي خاص با فرمت دلخواه رو ميگيم مثلا image/png يا text/css بعد ميگيم كه چه فرمتي رو از اين به بعد به عنوان نوعي كه گفتيم بشناس اما فرض كنيد ميخوايد از shtml , ssl در سايتتون استفاده كنيد و نياز به شناساندن اين فرمتها به آپاچي داريد : کد: AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes FollowSymLinks Includes كاربرد سوم- redirect ریدایرکت کد: Redirect /Dirold/test.html !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! توضيح: در اينجا مرورگري كه درخوست فايل test.html رو در شاخه dirold داشت بره به آدرس http://site.com/DirNew/new.html دوستانی که در زمینه SEO فعالیت دارند میدونند که این ریدایرکت چقدر موثره كاربرد چهارم - IndexIgnore بسیاری از هكرها بعد از نفوذ با browse كردن در دايركتوريهاي سايت شما و گشتن به دنبال فولدرها يا فايلها با پرميشن مطلوب كارشونو تكميل ميكنن و البته خيلي ها از اول از روش ديد زدن فولدرهايي كه حاوي موتور اسكريپت ها و اطلاعات با ارزشي هستن مثلا فايل config رو در بردارن به سايت نفوذ ميكنن programer ها جهت جلوگيري از اين كار ميان و يه index.html خالي درست ميكنن اما با اين كد ميشه يه صفحه مربوط به خالي بودن فولدر رو نشون داد يعني هيچي تو اين شاخه نيست در حالي كه شاخه ميتونه پر فايل باشه ... خیلی جالبه الان میتونم چندتا سایت پربازدید رو معرفی کنم که این مشکل رو دارند نکته خیلی جالبتر اینه که من مدتی پیش یک اسکریپت به دستم رسید داشتم ویرایشش میکردم و توابع اسمارتی رو بررسی میکردم که دیدم چندتا فایل کم هست یعنی چندتا صفحه نافص بود هرچقدذر نوشتم نتونستم اتصالات رو پیدا کنم تا اینکه برای تست رفتم وارد سایت تولید کننده این نرم افزار شدم از اونجایی که نسخه دمو روی سرور Run شده بود رفتم به دایرکتوری موردنظر با کمال تعجب دسترسی در پوشه تمپلیت مربوط به فایل های TPL باز بود منم با کمال لطف فایل های موردنظر رو برداشتم به همین راحتی شاید در ظاهر استفاده از این طرفند خیلی پیش پا افتاده باشه اما میدونم خیلی از افراد به آسونی از کنارش میگذرند کد: IndexIgnore * - اگه مثلا خواستيد فقط يه نوع فايل محافظت شه مثلا فقط فايلهاي pdf مينويسييد : کد: IndexIgnore application/pdf كاربرد پنجم - از index.php يا index.html خسته نشديد؟ با اين كد هم ميشه به وب سرور امر كرد كه كدام فايل به عنوان صفحه نخست نمایش داده بشه کد: DirectoryIndex homearea.php homearea.php رو به هر فايلي با هر نامي تغيير بديد. - DirectoryIndex يه فاصله و بعد نام فايل با هر فرمتي كاربرد ششم - DefaultCharset بسیاری از مشکلات دوستان نمایش انکودینگ صفحات اینترنتی هست با دستور زیر میتونید آپاچی رو مقید کنید تا Charset موردنظر شما رو ایجاد کنه کد: AddDefaultCharset utf-8 كاربرد هفتم - deny from all جهت حفاظت فایل های باز ارزش ولي محافظت نميشن ( مثلا mt-config.cgi ) اين كد ميگه كه هيچ مرورگر ي نتونه سورس اينها رو ببينه کد: <Directory /> Order Deny,Allow Deny from All </Directory> البته میشه این دسترسی رو فقط واسه یه آی پی محدود کرد کد: order allow,deny deny from 123.45.6.7 deny from 012.34.5. allow from all كاربرد هشتم -امنیت بیشتر دو تا كد امنيتيه ديگه کد: <Limit POST PUT DELETE> </Limit> کارش که مشخصه فکر کنم کد: <LimitExcept POST GET> </LimitExcept> شما به بومبرينگ اعتقاد داريد ؟ اين كد جلوي FSOCKOPEN رو میگیره كاربرد نهم - rewrite engine اول از همه Apache RewriteEngine بايد در وب سرور شما فعال باشه . اگه دسترسي داريد ميتونيد اين خط رو در httpd.conf اضافه كنيد : کد: LoadModule rewrite_module modules/mod_rewrite.so اگرم بهش دسترسي نداريد اين كد هم شايد بتونه كار كنه بايد تو همون htaccess كپي كنيد کد: <IfDefine ReverseProxy> LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/libproxy.so </IfDefine> اين همون چيزيه كه واسه ساب دومين مجازي هم به كار ميبريم من يه مثال سادشو واستون ميزنم فرض كنيد يه وبلاگ داشتيد با اين آدرس http://www.majidonline.com/siavashmusic حالا بلاگتون آدرسش عوض شده به اين http://www.majidonline.com/Majid البته دقت داشته باشيد اين هيچ ربطي به redirct نداره **این مورد رو دوستانی که به SEO وارد هستند میتونند متوجه بشن که ریدایرکت با ریرایت خیلی فرق داره از نظر نتیجه ای که در اینده برای ما در برخواهد داشت کد: RewriteEngine on RewriteRule ^ehsan(/.*)?$ /knowhow$1 [R=permanent] یکی از بهترین امکاناتی که اپاچی بهتون میده بهش mod_rewrite هستش که باعث میشه سایتتون خیلی تمیزتر بنظر بیاد و به عبارتی SEO بشه !!! تو هرجایی که شما بخواید از mod_rewrite استفاده کنید نیاز دارید که کد کد: Options +FollowSymlinks RewriteEngine on رو در فایل تون قرار بدید بزارید یک مثال بزنم , میخوایم تمام صفحات php رو تبدیل کنیم به html : کد: Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*).htm$ $1.php [nc] در دستور بالا ما گفتیم هر فایل php بود تبدیلش کن به .htm ولی این دلیل براین نیست که فرمت فایل عوض میشه نه!!! بلکه به هردو صورت دسترسی به فایل امکان پذیر هست برای مثال اگه یه فایل test.php داشته باشیم هم میتونیم با اسم test.htm بهش دسترسی پیدا کنیم و هم از test.php . [nc] : این دستور یعنی No Case یا همون case-insensitive فرض میکنیم اسم دومینمون رو عوض کردیم ولی فایل هامون همون قبلی ها هستن و میخوایم هرکسی تو دومین اولی یک فایل رو فراخوانی کرد ما همون فایل رو تو دومین دوم صدا بزنیم اینجور عمل میکنیم : کد: Options +FollowSymlinks rewriteengine on rewriterule ^(.+).htm$ http://clicksor.ir/$1.php [r=301,nc] 301 یعنی مستقیما ریدایرکت شده , دستور بالا زمانی خوبه که یه سایت قدیمی داریم حالا میخوایم update کنیم این کار باعث میشه موتورهای جستجوگر نتایج ما رو اتوماتیک آپدیت کنند اینجا رو ببینید » کد: Options +FollowSymlinks RewriteEngine on RewriteRule ^myfiles/(.+)/(.+).zip download.php?section=$1&filename=$2 [nc] بزارید ساده بگم اگه شما عبارت (.+) رو مساوی با 1$ فرض کنیم ( 1$=(.+) )ما میتونیم چندین بار از این عبارت استفاده کنیم به این صورت که بار اول که از (.+) استفاده میکنیم مساوی با 1$ میگیریم در دفعه دوم مساوی با 2$ میگیریم و همینطور الا اخر . در مثال بالا برای مثال اگه ما یه فایل در مسیر کد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! داشته باشیم این لینک از ادرس زیر هم در دسترس خواهد بود : کد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! مثال : کد: Options +FollowSymlinks RewriteEngine on RewriteRule ^blog/([0-9]+)-([a-z]+) http://clicksor.ir/weblog/index.php?archive=$1-$2 [nc] حالا اگه ادرس ارشیو وبلاگ ما بصورت : کد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! باشه تبدیل میشه به : کد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! با کمی Regular Expression میتونید ادرس هاتون رو خیلی حرفه ای تر کنید و زیباتر راهنما دستورات : کد: . Any single character [chars] یکی ار کاراکترها میتونه این باشه برای مثال [A] [^chars] هیج یک از این کاراکتر ها نباشه برای مثال [^A] text1|text2 همون کار or رو انجام میده Quantifiers: ? میتونه یک کاراکتر باشه و یا هیچ کاراکتری * هرچیزی میتونه باشه حتی اگه چیزی وجود نداشته باشه + حداقل یک کاراکتر وجود دارد Grouping: (text) برای ساختن گروه بکار میره Anchors: ^ شروع $ پایان Escaping: char برای مثال برای درنظر نگرفتن علائمی مثل [] یا . یا غیره هست در این مواقع به عنوان دستور در نظر نمیگیره مثال کد: Options +FollowSymlinks RewriteEngine On RewriteRule ^get(.*) /public/download/download.php$1 در مثال بالا ما گفتیم هر ادرسی که بعد از download.php قرار گرفت تبدیلش کنه به ادرس برای مثال اگه ادرسمون اینجوری باشه : کد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! تبدیل میشه به : کد: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در مثال بعدی میخوایم دسترسی به پوشه هارو بگیریم از کاربر کد: Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)$ deny.php [nc] تو قسمت بالا اگه کاربر بخواد به هر نحوی وارد یه پوشه بشه ریدایرکت میشه به deny.php بزارید در مثال بعدی کاری کنیم که فقط به فایل های خاصی دسترسی داشته باشه و بجز اون هر فایلی خواست باز کنه ارور بده : کد: Options +FollowSymlinks RewriteEngine On rewritecond %{REQUEST_FILENAME} !^(.+).css$ rewritecond %{REQUEST_FILENAME} !^(.+).js$ rewritecond %{REQUEST_FILENAME} !file.php$ RewriteRule ^(.+)$ /deny/ [nc] تو دستور بالا ما گفتیم فقط به فایل هایCss Js و فایل file.php اجازه بده که توسط کاربر فراخوانی بشه در غیر اینصورت ریدایرکت کنش به پوشه /deny/ . HotLinking مثال کد: Options +FollowSymlinks # no hot-linking RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! [nc] RewriteRule .*.(gif|jpg|png)$ !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! [nc] خوب فکر نمیکنم زیاد لازم به توضیح باشه کد بالا هر درخواستی رو که برای لود کردن عکس با فرمت gif,jpg,png از یه سایت دیگه باشه عکس http://clicksor.ir/red.jpg نمایش داده میشه . اضافه کردن WWW به ادرس سایت : این کد این کار رو براتون میکنه : کد: Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^!!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! [nc] rewriterule ^(.*)$ http://clicksor.ir/$1 [r=301,nc] در واقع یه نوع ریدایرکت هستش البته از نوع peremantly moved . ترجمه سایت : کد: Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)-fr$ http://www.google.com/translate_c?hl=fr&sl=en&u=http://clicksor.ir/$1 [r,nc] RewriteRule ^(.*)-de$ http://www.google.com/translate_c?hl=de&sl=en&u=http://clicksor.ir/$1 [r,nc] RewriteRule ^(.*)-es$ http://www.google.com/translate_c?hl=es&sl=en&u=http://clicksor.ir/$1 [r,nc] RewriteRule ^(.*)-it$ http://www.google.com/translate_c?hl=it&sl=en&u=http://clicksor.ir/$1 [r,nc] RewriteRule ^(.*)-pt$ http://www.google.com/translate_c?hl=pt&sl=en&u=http://clicksor.ir/$1 [r,nc] در کد بالا در صورتی که به اخر یک لینک یا ادرس یکی از کلمات de , -fr , -pr, -it- اضافه بشه توسط گوگل میتونید ترجمه کنید . عوض کردن نوع لینک برای مثال نوع ادرس عکس : کد: Options +FollowSymlinks RewriteEngine on RewriteRule ^pictures/(.*) http://clicksor.ir/getpicture.php?$1 [r] خاموش و روشن کردن رجیستر گلوبال جهت اینستال برخی از برنامه ها کد: php_flag register_globals on منبع : سایت آموزش (http://www.tutorials.ir/) تشکر :40::40: Bill Gates09-01-2009, 12:53 AMسلام مطلب مفید و جالبی رو دادی ممنون ذخیره کردم :دی تشکر// jamy_khoshtip09-01-2009, 12:56 AMآقا من کجل شدم اینقدر گفتم . برای تشکر از دکمه تشکر استفاده کنید . ممنونم . Bill Gates09-01-2009, 12:03 PMآقا من کجل شدم اینقدر گفتم . برای تشکر از دکمه تشکر استفاده کنید . ممنونم . چیزی که ارزش بیشتری داشته باشه نسبت به دکمه تشکر من هم از دکمه استفاده میکنم هم از پست - اگر هم دقت کنید دکمه رو زده بودم / اوکی دوکی؟ تشکر// jandedy09-01-2009, 07:20 PMدوست عزيز چرا خجالت مي كشي ؟ منبع ات يكم تابلو بود اما بسيار عالي . كارت خوب بود . سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 504]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن