صفحه 1 از 5 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 165

نام تاپیک: ترفندهای .htaccess

  1. #1
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    Cool ترفندهای .htaccess

    با سلام خدمت تمامی دوستان برنامه نویس

    امروزه بیشتر برنامه نویس های حرفه ای به سراغ فایل 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 http://site.com/DirNew/new.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.ABC.com/ABC
    حالا بلاگتون آدرسش عوض شده به اين http://www.ABC.com/AAAAA
    البته دقت داشته باشيد اين هيچ ربطي به redirct نداره
    **این مورد رو دوستانی که به SEO وارد هستند میتونند متوجه بشن که ریدایرکت با ریرایت خیلی فرق داره از نظر نتیجه ای که در اینده برای ما در برخواهد داشت

    کد:
    RewriteEngine on
    RewriteRule ^AAAA(/.*)?$ /ABC$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://mehr-design.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$ میگیریم و همینطور الا اخر .
    در مثال بالا برای مثال اگه ما یه فایل در مسیر

    کد:
    http://mehr-design.ir/download.php?section=appz&filename=ABC

    داشته باشیم این لینک از ادرس زیر هم در دسترس خواهد بود :

    کد:
    http://mehr-design.ir/myfiles/appz/ABC.zip

    مثال :


    کد:
    Options +FollowSymlinks 
    RewriteEngine on
    RewriteRule ^blog/([0-9]+)-([a-z]+) http://mehr-design.ir/weblog/index.php?archive=$1-$2 [nc
    ]
    حالا اگه ادرس ارشیو وبلاگ ما بصورت :

    کد:
    http://mehr-design.ir/weblog/index.php?archive=2007-sep
    باشه تبدیل میشه به :

    کد:
    http://persiandev.net/blog/2007-sep 
    با کمی 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 قرار گرفت تبدیلش کنه به ادرس برای مثال
    اگه ادرسمون اینجوری باشه :

    کد:
    http://mehr-design.ir/downloads/download.php?myfile=ABC.zip 
    تبدیل میشه به :

    کد:
    http://mehr-design.ir/Get?myfile=ABC.zip 
    در مثال بعدی میخوایم دسترسی به پوشه هارو بگیریم از کاربر

    کد:
    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} !^http://(www\.)?mehr-design\.ir/ [nc]
    RewriteRule .*.(gif|jpg|png)$ http://mehr-design.ir/red.jpg [nc]
    خوب فکر نمیکنم زیاد لازم به توضیح باشه کد بالا هر درخواستی رو که برای لود کردن عکس با فرمت gif,jpg,png از یه سایت دیگه باشه عکس http://mehr-design.ir/red.jpg نمایش داده میشه .

    اضافه کردن WWW به ادرس سایت :
    این کد این کار رو براتون میکنه :

    کد:
    Options +FollowSymlinks
    RewriteEngine on
    rewritecond %{http_host} ^www.mehr-design.ir [nc]
    rewriterule ^(.*)$ http://mehr-design.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://mehr-design.ir/$1 [r,nc]
    RewriteRule ^(.*)-de$ http://www.google.com/translate_c?hl=de&sl=en&u=http://mehr-design.ir/$1 [r,nc]
    RewriteRule ^(.*)-es$ http://www.google.com/translate_c?hl=es&sl=en&u=http://mehr-design.ir/$1 [r,nc]
    RewriteRule ^(.*)-it$ http://www.google.com/translate_c?hl=it&sl=en&u=http://mehr-design.ir/$1 [r,nc]
    RewriteRule ^(.*)-pt$ http://www.google.com/translate_c?hl=pt&sl=en&u=http://mehr-design.ir/$1 [r,nc]
    در کد بالا در صورتی که به اخر یک لینک یا ادرس یکی از کلمات de , -fr , -pr, -it- اضافه بشه توسط گوگل میتونید ترجمه کنید .
    عوض کردن نوع لینک برای مثال نوع ادرس عکس :

    کد:
    Options +FollowSymlinks
    RewriteEngine on

    RewriteRule ^pictures/(.*) http://mehr-design.ir/getpicture.php?$1 [r]
    خاموش و روشن کردن رجیستر گلوبال جهت اینستال برخی از برنامه ها

    کد:
    php_flag register_globals on


    امیدوارم که این آموزش به دردتون خورده باشه
    موفق باشید دوستان
    آخرین ویرایش به وسیله رضا قربانی : یک شنبه 19 شهریور 1391 در 17:32 عصر

  2. #2
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    یک مقاله آموزشی بسیار جالب و آموزنده در مورد Mod_rewrite

    خیلی راحت کمکتون می کنه تا با Mod_rewrite ها آشنا بشید و چطور اون رو در لوکال هاست فعالش کنید

    موفق باشید
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله رضا قربانی : یک شنبه 19 شهریور 1391 در 17:35 عصر

  3. #3

    نقل قول: ترفندهای .htaccess

    دوست عزیز من برای خطای ۴۰۴ میخواستم تست کنم نتونستم
    اولا نوشتن فقط این دستور توی فایل.htaccessکافیه؟
    ErrorDocument 404 /404.html
    ثانیا من چون این کد برام جواب نداد اومدم یک فایل با نام404.html ساختم و اونو کنار فایلهای .htaccess و php گذاشتم بازم جواب نداد بعد اومدم داخل فایل .htaccess رو ویرایش کردم و مسیر دقیق فایل 404.html رو دادم اینبار کار کرد ولی اون پیامی که من توی فایل 404.html نوشته بودم رو نشون نداد فقط مسیر آدرس اونو برام آورد.
    میشه یک نمونه کامل برای همین 404 بگید.

  4. #4
    کاربر دائمی آواتار ghasemweb
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    608

    نقل قول: ترفندهای .htaccess

    من هم تست کردم جواب نداد

  5. #5
    کاربر دائمی آواتار Mahdi.Spirit
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    گيلان
    پست
    123

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط armintirand مشاهده تاپیک
    دوست عزیز من برای خطای ۴۰۴ میخواستم تست کنم نتونستم
    اولا نوشتن فقط این دستور توی فایل.htaccessکافیه؟
    ErrorDocument 404 /404.html
    ثانیا من چون این کد برام جواب نداد
    ...
    نقل قول نوشته شده توسط ghasemweb مشاهده تاپیک
    من هم تست کردم جواب نداد
    كد مشكلي نداره ،‌ فقط كافيه همون رو توي فايل htaccess‌ كپي كنيد و يه فايل هم با همون اسم html.404 ايجاد كنين كنارش بزارين

  6. #6

    نقل قول: ترفندهای .htaccess

    دوست عزیز کارنمیکنه یعنی نتیجه ای که من میخوام رو نمیده!
    من تو فایل 404.html پیامی ساختم که میگه این صفحه موجود نیست و کاربر رو بعد 2 ثانیه به صفحه اول سایت میبره ولی به جای اون فقط مسیر فایل 404 نشون داده میشه!
    شما اگه میگی میشه نمونه انجام شدش رو بذار تا یاد بگیریم.

  7. #7
    کاربر دائمی آواتار Mahdi.Spirit
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    گيلان
    پست
    123

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط armintirand مشاهده تاپیک
    دوست عزیز کارنمیکنه یعنی نتیجه ای که من میخوام رو نمیده!
    من تو فایل 404.html پیامی ساختم که میگه این صفحه موجود نیست و کاربر رو بعد 2 ثانیه به صفحه اول سایت میبره ولی به جای اون فقط مسیر فایل 404 نشون داده میشه!
    شما اگه میگی میشه نمونه انجام شدش رو بذار تا یاد بگیریم.
    خب برای من کار میکنه !
    ضمیمه کردم، بعد از 2 ثانیه میره به index.php

    ---------------------
    پ.ن:
    1- آدرس دهي فايل ضميمه رو تصحيح كردم
    2-فايلها بايد در root كپي(extract) شود!
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Mahdi.Spirit : جمعه 06 خرداد 1390 در 19:25 عصر دلیل: تصحيح فايل ضميمه

  8. #8

    نقل قول: ترفندهای .htaccess

    شما یا این کد رو خودت ننوشتی یا خواستی منو کلاس بذاری!!
    دوست عزیز فایل ایندکس شما اصلا لینک نداره که اگه روش کلیک کنیم و اگه مو جود نبود و ارور ۴۰۴ داد اونی که خودمون ساختیم رو بده.
    در ضمن من با اضافه کردن یک لینک به فایل ایندکس شما بازم کار نکرد و ارور پیشفرض ۴۰۴ را داد.
    لطفا بررسی کنید.
    ممنون

  9. #9
    کاربر دائمی آواتار mtchabok
    تاریخ عضویت
    آذر 1389
    محل زندگی
    مازندران - ساری
    سن
    37
    پست
    560

    نقل قول: ترفندهای .htaccess

    عزیزان برای منم درست کار میکنه .
    مواردی رو که باید رعایت کنید اینهاس :
    - ادرس رو سعی کنید که کامل وارد کنید : اگه فایل خطای شما در آدرس http://localhost/test/404.html قرار داره میتونید هم به همون صورت و هم /test/404.html وارد کنید .
    - سعی کنید آدرستون رو در یه ' قرار بدید . البته فرقی ندارها برای محکم کاری .

  10. #10
    کاربر دائمی آواتار Mahdi.Spirit
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    گيلان
    پست
    123

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط armintirand مشاهده تاپیک
    شما یا این کد رو خودت ننوشتی یا خواستی منو کلاس بذاری!!
    دوست عزیز فایل ایندکس شما اصلا لینک نداره که اگه روش کلیک کنیم و اگه مو جود نبود و ارور ۴۰۴ داد اونی که خودمون ساختیم رو بده.
    در ضمن من با اضافه کردن یک لینک به فایل ایندکس شما بازم کار نکرد و ارور پیشفرض ۴۰۴ را داد.
    لطفا بررسی کنید.
    ممنون
    من نميدونم چرا اينقدر زود عصباني ميشيد؟ و فكر ميكنين همه يا دارن كلاس ميزارن يا ميپيچونن ضمنا كسي هم اينجا حقوق نميگيره كه حتما بياد جواب بده ،‌ هركسي اينجا هر چقدر دوست داره كمك ميكنه و معمولا همه سعي ميكنن به سوالا كامل (در حد كفايت) جواب بدن!
    خب وقتي اين كد براي من كار ميكنه بيام بگم نميشه؟ بعدش مگه دو خط كد اونم فقط نوشتن چنتا كلمه توي خروجي كلاس گذاشتن داره كه بخوام خودم بنويسم يا كپي كنم
    احتمالا مشكل كدتون اينه كه فايل htaccess رو توي root نميزاريد و توي فولدر ميزاريد بعد آدرس ها رو خوب نمينويسين،‌ اول همون فايلي كه دادم رو توي root‌ كپي كنيد و تست كنيد ولي اگر توي فولدر ميزاريد اين كاري كه دوستمون گفتن رو انجام بدين
    نقل قول نوشته شده توسط mtchabok مشاهده تاپیک
    مواردی رو که باید رعایت کنید اینهاس :
    - ادرس رو سعی کنید که کامل وارد کنید : اگه فایل خطای شما در آدرس http://localhost/test/404.html قرار داره میتونید هم به همون صورت و هم /test/404.html وارد کنید .
    - سعی کنید آدرستون رو در یه ' قرار بدید . البته فرقی ندارها برای محکم کاری .
    مثلا اگر توي فولدر به اسم 404 گذاشتين فايل htaccess بايد اينطوري باشه

    ErrorDocument 404 /404/404.html
    يا
    ErrorDocument 404 http://localhost/404/404.html

    ضمنا اون لينك به صفحه اي كه موجود نباشه هم براي اينكه لازم نبود نزاشتم ،‌ شما توي آدرس بار يه چيز الكي بنويسيد تست كنيد
    مثلا:

    localhost/asdfghjkl

    اميدوارم مشكلتون حل شده باشه

  11. #11
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    چقدر عصبانی


    مشکلی نداره - این رو دقت داشته باشید که برای استفاده از این فایل باید آدرس ها رو بطور کامل بدید !!!! (حتی در فایل های php برای لینک ها یا فراخوانی استایل و جاوا و ...)
    http://localhost/test/s.css
    آخرین ویرایش به وسیله رضا قربانی : سه شنبه 11 تیر 1392 در 20:31 عصر

  12. #12

    نقل قول: ترفندهای .htaccess

    شرمنده عمدی نیست من مدتی پیش چیزی از وب نمیدونستم تقریبا۱ سال پیش ولی به خاطر یه پیشنهاد کاری افتادم تو کار وب و چون وقت کمی برای یادگیری داشتم شدید مطالعه کردم ولی امان از اینکه آدم جویای مطلب باشه و مطلب نایاب!

  13. #13
    کاربر دائمی آواتار Mahdi.Spirit
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    گيلان
    پست
    123

    نقل قول: ترفندهای .htaccess

    آقا رضا لطفا شما هم اوني كه آپلود كردم رو يه تست كن (با توضيحاتي كه دادم) ببين مشكلي داره؟!

  14. #14
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط Mahdi.Spirit مشاهده تاپیک
    آقا رضا لطفا شما هم اوني كه آپلود كردم رو يه تست كن (با توضيحاتي كه دادم) ببين مشكلي داره؟!

    بله مشکل داره

    همون طور که گفتم باید کامل آدرس دهی کنید !!!!!!!!!!!!! چندین بار دارم همه جا می گم و مشکل شما و دوست عزیزمون هم همینه
    فایل دوست گلم Mahdi.Spirit رو بگیرید (در صفحه قبلی) ، باید داخل فایل اچ تی اکسس اینطوری آدرس دهی کنید :
    ErrorDocument 404 http://localhost/htaccess404/404.html

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

    صفحه 404 رو هم توی گوگل تصویرش رو سرچ کنید چیزای جالبی گیرتون میاد .
    مانند :
    http://geniusgeeks.com/blog/wp-conte...009/09/404.jpg

    http://sensorymetrics.com/wp-content...007/08/404.JPG

    و ...


    موفق باشید
    آخرین ویرایش به وسیله رضا قربانی : جمعه 06 خرداد 1390 در 14:48 عصر

  15. #15
    کاربر دائمی آواتار Mahdi.Spirit
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    گيلان
    پست
    123

    نقل قول: ترفندهای .htaccess

    آقا رضای گل من كه مشكل نداشتم!
    برای من كه كار میكرد
    بعدش توی پست بعدی هم توضیح دادم كه یا باید كل اون چنتا فایلی كه گذاشتم رو توی root بزارن یا توی htaccess آدرس كامل رو بزارن

  16. #16

    نقل قول: ترفندهای .htaccess

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

  17. #17
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط Mahdi.Spirit مشاهده تاپیک
    آقا رضای گل من كه مشكل نداشتم!
    برای من كه كار میكرد
    بعدش توی پست بعدی هم توضیح دادم كه یا باید كل اون چنتا فایلی كه گذاشتم رو توی root بزارن یا توی htaccess آدرس كامل رو بزارن
    آدرس دهی دیگه " یا " نداره . حتما باید کامل باشه .

    شاید ورژن آپاچی شما بالاتر باشه و به این چیزا اهمیت نده !!! ولی درستش اینه که کامل آدرس دهی کنید چون همه جوره درست می زنه (چه ورژن پایین باشه چه ورژن بالاتر باشه چه توی هاست لینوکس بذارید ) مشکل این بود .
    در غیر این صورت بسیار خوب و ساده برای دوستمون فایل آماده کردید و یه تشکر هم ازتون نکرد


    armintirand عزیز مشکلت حل شد ؟ (ما آخر نفهمیدیم - انقدر کتاب نخون ، عملی بیشتر کار کن)

    موفق باشید

  18. #18

    نقل قول: ترفندهای .htaccess

    اقا ممنون اره حل شد فقط یک سوال با چیزایی که تو این فایل هست میشه امکانات محدود کردن مثل سایتهای دانلود محدود مثل رپید شیر رو ساخت؟

  19. #19
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط armintirand مشاهده تاپیک
    اقا ممنون اره حل شد فقط یک سوال با چیزایی که تو این فایل هست میشه امکانات محدود کردن مثل سایتهای دانلود محدود مثل رپید شیر رو ساخت؟
    متوجه منظورت نشدم . می خوایی چی کار کنی ؟ چه عملی می خوایی واست انجام بده

  20. #20

    نقل قول: ترفندهای .htaccess

    اخه گفته بودند برای امنیت سایت این کارها مناسبه میخواستم ببینم چه نوع امنیتی ایجاد میکنه؟
    یک موضع جالب امروز ارور ۴۰۴ هاستم رو از طریق کنترل پنل فعال کردم روی فایرفاکس کار میکنه اما روی اینترنت اکسپلورر کار نمیکنه!

  21. #21
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    با سلام خدمت تمامی دوستان

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

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

    اگر شما هم مطالبی در اختیار دارید ممنون می شم در اختیار عموم قرار بدید تا من و بقیه دوستان یاد بگیریم .

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

  22. #22
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    Htaccess. یک فایل پیکر بندی برای وب سایت هایی است که از سرور آپاچی استفاده می کنند. وقتی این فایل در یکی از پوشه های وب سایت قرار می گیرد، وب سرور آپاچی بررسی می کند که چه دستوراتی در این فایل وجود دارد و بعد طبق این دستورات، آن قسمت از سایت که htaccess در آن قرار دارد را پیکر بندی می کند. این فایل می تواند برای فعال و یا غیر فعال کردن یک سری از توابع و ویژگی های وب سرور آپاچی مورد استفاده قرار بگیرد که می تواند ریدایرکت کردن یک صفحه یا نمایش پیغام های خطای رایج مانند: ارور 404 را شامل شود.
    استفاده از این فایل در همه موارد پیشنهاد نمیشود زیرا امنیت وب سرور را تحت شعاع قرار می دهد. اما در مواقعی که سرور به صورت اشتراکی و اصطلاحا share شده خدمت رسانی می کند و تعداد زیادی سایت برروی آن قرار دارد پیشنهاد آن است که از فایل htaccess استفاده شود. زیرا هر سایت باید توانایی پیکر بندی قسمت مربوط به خود را دارا باشد.
    نکته: به دلیل آنکه نحوه پیکربندی این فایل مانند پیکربندی فایل اصلی سرور (httpd.conf)است تصمیمات بر اساس شرایط اخذ می شود. البته تمامی امکانات httpd.conf را شامل نمی شود!
    عبارت .htaccess"" خود یک نام فایل است و دقیقا به همین صورت مورد استفاده قرار می گیرد. پس نیازی به اضافه کردن چیزی قبل از "." نیست. و عبارت "file.htaccess" قابل قبول نمی باشد!
    برای اعمال پیکر بندی و تغییرات مورد نظر(محدودیت دسترسی، ریدایرکت و...) فقط کافی است فایل htaccess را در یکی از پوشه های دلخواه قرار دهید تا وب سرور آپاچی پس از بررسی دستورات موجود در این فایل تغییرات را برروی پوشه و پوشه های زیر مجموعه اعمال کند.
    برای ایجاد این فایل در سیستم عامل لینوکس لازم است یک فایل را ایجاد کرده و سپس نام آن را به .htaccess تغییر دهیم. اما در ویندوز به دلیل آنکه این سیستم عامل از فرمت "پسوند.نام فایل" پشتیبانی می کند و هر حرفی بعد از "." را پسوند فایل می داند و طبیعتا نام فایل نمی تواند خالی باشد از فرمت .htaccess پشتیبانی نمی کند. برای حل این مشکل می بایست از یک ویرایشگر متن استفاده کرد و در مرحله ذخیره نام آن را به .htaccess تغییر نام دهیم.

    سرور آپاچی در اصل متعلق به خانواده لینوکس هست. در خانواده لینوکس برای مخفی کردن یک فایل در اول فایل یک نقطه "." گذاشته می شود. پس ساختار این فایل به این صورت است: ".htaccess"
    امنیت یک فایل در حالت مخفی می تواند بیشتر باشد.


    کنترل دسترسی افراد به بخش های خاصی از سایت :
    امنت یکی از اصول مهم وب سایت های اینترنتی است. هرچه امنیت سایت بالاتر باشد امنیت خاطر کاربران و همچنین مدیر سایت بیشتر خواهد شد. در این بین لازم است تا ناحیه هایی از سایت را با اعمال یک پروسه امنیتی محدود کنیم. این ناحیه می تواند کنترل پنل و یا حتی عکس و... باشد. با استفاده از فایل htaccess می توان این کار را به بهترین نحو انجام داد. برای اعمال این کنترل لازم است تا مواردی را انجام دهیم. پس ماژول ها و دستورات خاصی لازم است که در ادامه شرح داده خواهد شد.
    حداقل یکی از انواع ماژول های زیر احتیاج داریم:
    1- ماژول های مربوط به نوع تصدیق هویت, که شامل mod_auth_basic و mod_auth_digest است. و توسط دستور AuthType مشخص می شوند.
    2- ماژول هایی که وظیفه ارائه تصدیق هویت را بر عهده دارند و شامل ماژول هایmod_authn_alias, mod_authn_anon, mod_authn_dbd, mod_authn_dbm, mod_auth_default, mod_authn_file, mod_authnz_ldap می شوند.
    3- ماژول هایی که اختیارات لازم را به گروه ها و اشخاص مختلف می دهند و عبارتند از mod_authnz_ldap, mod_authz_dbm, mod_authz_default, mod_authz_groupfile, mod_authz_owner, mod_authz_user. این ماژول ها توسط دستور Require به کار برده می شوند.
    اما روش کار به این صورت است که اول بایستی یک فایل که حاوی نام کاربری و رمز عبور برای ورود به این ناحیه لازم است را ایجاد کنیم. به منظور امنیت بیشتر این فایل باید دور از دسترس باشد و در جایی خارج از مسیردهی مرورگر واقع شود. مانند: /home/usr/pass. پس از ایجاد فایل مربوط به رمز عبور و نام کاربری، این فایل را باز کرده و نام کاربر و رمز عبور را در یک خط درج می کنیم به طوری که نام کاربر و رمز عبور با ":" از هم جدا شده باشند.
    توجه: دقت کنید که رمز عبور شما باید با تکنولوژی md5 رمزگذاری شده باشد!
    پس از انجام مراحل بالا فایل .htaccess را در مسیری که به امنیت احتیاج دارد ایجا می کنیم و دستورات زیر در آن نگارش می شوند:



    AuthName "Member's Area Name"
    AuthUserFile /path/to/password/file/.htpasswd
    AuthType Basic
    require valid-user

    در این مثال دستوراتی دیده می شود.
    Authname: نام ناحیه محافظت شده است که به کاربر نشون داده می شود.
    Authuserfile: مسیر مربوط به فایلی است که رمز و نام کاربری در آن قرار دارد.
    Authtype: نوع شناسایی هویت را مشخص می کند که در این مثال از basic یکی از پرکاربردترین روش برای محافظت استفاده شده است.
    Require: اسم یوزری که حق وارد شدن به ناحیه محافظت شده را دارد مانند: vahid


    ادامه دارد ...

  23. #23
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    تغییر مسیر یا Redirect به وسیله htaccess.
    هنگامی که قابلیت تغییر مسیر در httpd.conf سرور فعال باشد مدیر سایت به راحتی می تواند بازدیدکنندگان خود را به صفحات دلخواه هدایت کند و این می تواند بسیار مفید باشد مثلا وقتی که محتوای سایت منتقل شده به راحتی می توان افراد را به محل جدید هدایت کرد.
    برای این کار باید از کد زیر استفاده کنید:


    Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html

    این دستور مایانگر این است که اگر کسی به مسیر /old_dir/ رفت بطور اتوماتیک به /new_dir/ منتقل شود و محتوای مسیر جدید نمایش داده شود.
    در این مثال هر دو مسیر در یک سایت وجود دارد.

    بلوکه کردن درخواست ها از یک ip خاص
    به دلیل برخی مشکلات امنیتی لازم است که از ورود برخی افراد جلوگیری شود که یکی از این راه ها بلوکه کردن ip این افراد است. ویا حتی مایلید که هیچ کس به غیر از مدیر سایت قادر نباشد به بخش مدیریتی برود. این دستور کمک بسیاری به کسانی که این هدف را دارند می کند.
    برای این منظور متن زیر رو در فایل .htaccess قرار دهید:


    order allow,deny
    deny from 255.0.0.0
    deny from 123.45.6.
    allow from all

    این خطوط ip 255.0.0.0 و ip های بین 123.45.6.0 و 123.45.6.255 را بلوکه می کند.
    توضیح: 255.0.0.0 یک آی پی default و بجای آن می توان هر آی پی را وارد کرد.
    اما وقتی که بخواهیم همه ip ها به جز یک آی پی خاص را بلوکه کنیم از خط زیر استفاده می شود:


    Order allow,deny
    Allow from 255.0.0.0
    Denny from all

    این خط نیز می گه که فقط ip 255.0.0.0 اجازه عبور داره و بقیه بلوک هستند.
    توضیح: 255.0.0.0 یک آی پی default و بجای آن می توان هر آی پی را وارد کرد.


    بلوکه کردن درخواست ها از یک آدرس url خاص (تکنیک referrers)
    این عمل نیز مانند بالا عمل بلوکه کردن را انجام می دهد. اما با این تفاوت که به جای آی پی از آدرس url استفاده می کند.
    نکته: برای اجرای این درخواست به ماژول 'mod_rewrite' احتیاج داریم. لذا باید این ماژول را فعال کرد.
    پس ابتدا از کد زیر استفاده می کنیم:


    RewriteEngine on

    سپس:


    # Options +FollowSymlinks
    RewriteCond %{HTTP_REFERER} otherdomain\.com [NC]
    RewriteRule .* - [F]

    این دستور ترافیک درخواستی از آدرس: otherdomain.com را بلوکه می کند. nc آخر نیز مخفف کلمه it as not case-sensitive به معنی اینکه آدرس دارای حساسیت نیست. و به طور دقیق تر اینکه به هر طریقی که آدرس درخواست کننده تغییر داده شود بلوکه می شودمانند:


    OtherDomain.com , oTherdOmain.com , OTHERDOMAIN.COM

    و اما / قبل از نقطه این دقت را به وجود می آورد که بطور اشتباه آدرس domain.com را هم بلوک نکند. و این بخاطر استفاده از nc است که در مورد آدرس ها سخت گیری بعمل می آورد.
    اگه symlink در فایل httpd.conf غیر فعال و بسته باشد به خاطر وجود Options +FollowSymlinks ارور 500 internal server error برگشت داده می شود. که در این صورت باید با مدیر سرور تماس گرفت و درخواست فعال سازی symlink را خواستار شد.
    نسخه کامل:


    RewriteEngine on
    # Options +FollowSymlinks
    RewriteCond %{HTTP_REFERER} otherdomain\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} anotherdomain\.com
    RewriteRule .* - [F]

    در این مثال ما از یک آدرس دیگر هم استفاده کردیم و درواقع 2 آدرس را بلوکه کردیم، که به این کار اصطلاحا multiple referrers گفته می شود.


    عدم نمایش فایل های خاصی از سایت به url (ها)
    آیا شما یک رقیب دارید که مایل نیستید که از فایلهاتون استفاده کند؟ آیا شما ساعت ها برای طراحی یک CSS زحمت کشیدید و مایل نیستید که فلان آدرس بیاد و از زحماتتون استفاده کنه به اسم خودش؟!
    پس با دقت این بخش را مطالعه نمائید.
    نکته: برای اجرا شدن این درخواست به ماژول 'mod_rewrite' احتیاج می باشد. لذا باید این ماژول را فعال کنیم.
    مثلا می خواهیم کسی نتواند در یکی از پوشه های سایت، فایل های با پسوند:.jpg,.gif,.css را ببیند و همچنین در سایت خود قرار دهد و در واقع از قالبی که ما ساخته ایم استفاده کند.
    دستورات زیر را در فایل .htacces قرار دهید:


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

    این دستور تمام درخواست های استفاده و یا مشاهده فایل با پسوند jpg,gif,css را که از سایت yourdomain.com نیستند را بلوکه می کند.


    ادامه دارد ...

  24. #24
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    مشخص کردن صفحه پیش فرض برای نمایش

    شما می توانید فایل هایی را به طور پیش فرض برای نمایش به بازدیدکنندگان مشخص نمایید. مثلا هنگامی که بازدید کننده به سایتی مراجعه می کند(yoursite.com) به جای لیست دایرکتوری و نمایش فایل های موجود در دایرکتوری یک فایل با پسوند خاص را نمایش دهد. این فایل قابل تغییر است و می توان به طور دلخواه آن را مشخص کرد. به طور پیش فرض در سرور ها به این صورت می باشد:


    DirectoryIndex index.html

    که شما می توانید به صورت زیر تغییر دهید:


    DirectoryIndex index.html index.php index.cgi

    وقتی بازدید کننده آدرس سایت را وارد می نماید آپاچی جستجو می کند که چه فایل هایی در htacces به طور پیش فرض مشخص شده اند و با توجه به اولویت داده شده آنها را نمایش می دهد. برای مثال در مثال بالا ابتدا فایل index.html و در صورت نبود فایل index.html ، فایل index.php را نمایش می دهد و در پایان اگر هیچکدام از این دو فایل موجود نباشد، فایل index.cgi به نمایش کشیده می شود.

    ایجاد پسوند برای فایل یا MIME
    دوستان در برخی موارد ما نیاز داریم تا پسوند خاصی را برای یک فایل مشخص ایجاد کنیم یا یک پیوند خاص برای یک فایل مثلا html را به وب سرور آپاچی معرفی کنیم. برای اینکار یک فایل htaccess در پوشه مربوطه ایجاد کرده و کد زیر را درآن وارد می کنیم:


     AddType text/html html0

    در بخش نخست دستور اعلام می کند که یک پسوند اضافه می شود. و در بخش دوم نوع فایلی که بایست پسوند جدید ست شود را مشخص می کنیم و در بخش آخر پسوند جدید را می نویسیم. این کد فایل با پسوند html0 را به عنوان یک فایل html می شناسد و آنرا به صورت یک سند وب اجرا می کند.
    در مواردی لازم است که شما فایل های مشخص شده ای را برای دانلود در سایت خود قرار دهید که در این بین ممکن است با عدم دانلود این فایل ها مواجه شوید. برای جلوگیری از این مشکل از دستور زیر استفاده می کنیم:


    AddType application/octet-stream .bin

    در این صورت هنگامی که فایلی با پسوند bin فراخوانی شود. مرورگر شروع به دانلود این فایل می کند!
    در زیر لیستی از مهمترین پسوند ها را مشاهده می کنید:


    AddType text/html .html .htm 
    AddType text/plain .txt
    AddType text/richtext .rtx
    AddType text/x-server-parsed-html .shtml .sht
    AddType application/octet-stream .bin .exe
    AddType application/pdf .pdf
    AddType application/postscript .ai .eps .ps
    AddType application/rtf .rtf
    AddType application/zip .zip
    AddType application/x-sh .sh
    AddType application/x-gtar .gtar
    AddType application/x-tar .tar
    AddType application/x-httpd-cgi .cgi
    AddType image/gif .gif .GIF
    AddType image/jpeg .jpeg .jpg .jpe .JPG
    AddType image/tiff .tiff .tif
    AddType video/mpeg .mpeg .mpg .mpe
    AddType video/quicktime .qt .mov
    AddType video/x-msvideo .avi
    AddType video/x-sgi-movie .movie







    فعال کردن SSI بوسیله htaccess

    SSI مخفف عبارت server side includes می باشد و این بدان معناست که بوسیله این روش می توانید سندهای html و یا cgi دیگری را به وب سایت خودتون بوسیله تگ مخصوص آن بچسبانید. این متد بسیار مفید است چراکه به فرض شما می توانید یک منو یا هدر و... را به صفحات سایت خودتون اضافه کنید و دیگر نیاز نیست برای هر صفحه کد بنویسید. فقط کافی است از این متد استفاده کنید.
    تگ زیر فراخوانی یک سند SSI را به شما نمایش می دهد. این کد باید در بین صفحات وب قرار گیرند. این کد باعث می شود که اسکریپت CGI واقع در مسیر مربوطه فراخوانی و اجرا شود.



    <!--#exec cgi="/cgi-bin/script.cgi"-->

    در کد زیر نیز یک سند html معمولی فراخوانی می شود.
    <!--#include virtual="/files/document.html"-->

    اما این متد نیاز به فعال شدن دارد و برای فعال کردن آن باید از فایل htaccess کمک گرفت. برای این منظور فایل htaccess را در مسیر مربوطه ایجاد کنید و کد زیر را در آن وارد نمایید:



    AddHandler server-parsed .html

    این کد آپاچی را به گونه ای پیکر بندی می کند که اجازه داشته باشد متد SSI را در خصوص فایل html اعمال کند. وبرای اجرای این متد برروی چندین فایل باید کد زیر را وارد نمایید:



    AddHandler server-parsed .html
    AddHandler server-parsed .shtml
    AddHandler server-parsed .htm

    اجرای اسکریپت CGI در خارج از مسیر مربوطه( /cgi-bin/)

    اگر سرور شما اجازه استفاده از فایل های cgi خارج از پوشه /cgi-bin/ را نمی دهد، براحتی می توانید این متد را فعال نمایید. به شرطی که ادمین سرور اجازه این کار را به شما داده باشد.
    برای فعال سازی این متد، ابتدا فایل htaccess را ایجاد نموده و کدهای زیر را در آن وارد نمایید:


    AddHandler cgi-script .cgi
    Options +ExecCGI

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


    ادامه دارد ...
    موفق باشید

  25. #25
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    غیر فعال کردن نمایش دایرکتوری

    ممانعت از لیست شدن دایرکتوری می تواند بسیار مفید باشد. برای مثال وقتی که شما یک دایرکتوری حاوی فایل های مهم دارید و نمی خواهید این فایل ها در معرض نمایش قرار گیرند. و یا حتی برعکس می خواهید برخی فایل ها را به نمایش بگذارید.

    برای جلوگیری از نمایش دایرکتوری ابتدا یک فایل htaccess ایجاد کرده و کد زیر را در آن وارد نمایید:


    IndexIgnore *

    این خط سرور آپاچی را به گونه ای پیکر بندی می کند که از نمایش دایرکتوری ممانعت ورزد. این دستور تمامی فایل های داخل دایرکتوری را غیر قابل نمایش می کند چراکه از کاراکتر * به معنی همه فایل ها استفاده کرده است.
    اما برای ممانعت از نمایش یک نوع فایل خاص مانند zip فقط کافی است از این پسوند استفاده نمایید.


    IndexIgnore *.zip

    دقت نمایید که در مثال قبل فقط یک ستاره بکار برده شده بود اما در این مثال پسوند نیز بکار برده شده و این به این معنی است که همه فایل ها به جز zip قابل نمایش هستند.
    همچنین شما می توانید چندین فایل را بکار برید:


    IndexIgnore *.zip *.jpg *.gif

    یک پیشنهاد: گاهی اوقات سرور اجازه فعال کردن indexignore را نمی دهد. شما می توانید خود این متد را فعال نمایید:



    Options +Indexes

    برای غیر فعال سازی متد نیز بجای کارکتر"+" از کاراکتر "-" استفاده نمایید.

    تنظیم منطقه زمانی سرور
    گاهی اوقات شما از یک سرور در آمریکا هاست خریداری کرده اید اما سایت شما محتوای فارسی دارد و در ایران و ساعت ایران کاربرد دارد و شما باید ساعت را به ساعت ایران نشان دهید. برای اینکار آپاچی چاره ای اندیشیده است. برای تنظیم این ویژگی کافی است کدهای زیر را در فایل htaccess وارد نمایید:


    SetEnv TZ America/Indianpolis
    SetEnv TZ America/Los_angeles

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


    ServerSignature EMail
    SetEnv SERVER_ADMIN nospace@pleasenospace.com

    برای غیر فعال سازی این متد نیز از کد زیر استفاده نمایید:



    ServerSignature Off

    ممانعت از دسترسی به فایل های php includes

    اگر شما پوشه حاوی فایل های inclue دارید بهتر است برای امنیت بیشتر از دسترسی افراد به این فایل ها جلوگیری کنید. اکنون راهی که از ماژول mod_Rewrite استفاده می کند را به شما آموزش می دهم.



    ## Enable Mod Rewrite, this is only required once in each .htaccess file
    RewriteEngine On
    RewriteBase /
    ## Test for access to includes directory
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /includes/ .*$ [NC]
    ## Test that file requested has php extension
    RewriteCond %{REQUEST_FILENAME} ^.+\.php$
    ## Forbid Access
    RewriteRule .* - [F,NS,L]

  26. #26
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    ممانعت از دسترسی به فایل php.ini

    اگر شما ترس از این دارید که افرادی به فایل های پیکربندی php دسترسی پیدا کنند می توانید این دسترسی را بوسیله فایل htaccesss محدود نمایید.
    برای فعال سازی این متد فایل های زیر را در htaccess قرار دهید:


    <FilesMatch "^php5?\.(ini|cgi)$">
    Order Deny,Allow
    Deny from All
    Allow from env=REDIRECT_STATUS
    </FilesMatch>

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



    RemoveHandler cgi-script .pl .cgi .php .py 
    AddType text/plain .pl .cgi .php .py

    دانلود فایل های مدیا به جای اجرای آن
    فایل های mp3 و دیگر فایل های مدیا طبق شرایطی ممکن است به جای دانلود شدن به اجرا در آیند. برای ممانعت از چنین کاری از کدهای زیر استفاده کنید:



    AddType application/octet-stream .zip .mp3 .mp4

    که این کد سرور آپاچی را به گونه پیکر بندی می کند که این فایل ها را دانلود شدنی بداند.

    ممانعت از درخواست با کارکترهای نامعتبر
    شما می توانید کاراکتر های غیر مجاز را بلوکه نمایید تا بدین وسیله امنیت سایت خود را افزایش دهید. برای اینکار کدهای زیر را در فایل htaccess وارد نمایید:


    RewriteEngine On 
    RewriteBase /
    RewriteCond %{THE_REQUEST} !^[A-Z]{3,9}\ [a-zA-Z0-9\.\+_/\-\?\=\&]+\ HTTP/ [NC]
    RewriteRule .* - [F,NS,L]

    موفق باشید دوستان

  27. #27

    نقل قول: ترفندهای .htaccess

    كاربرد دوم- نمایش پسوند دلخواه صفحات (add mime type)

    يك راه امنيتي كه من واقعا پيشنهاد ميكنم واسه حفاظت از اسكريپت هاي php شما اينه كه اونا php نباشن !! بله يعني مثلا asp يا jsp باشن اينطوري یه مقدار مطلب پیچیده میشه برای تشخیص

    کد:
    1
    AddType application/x-httpd-php .asp .jsp
    Addtype ميگه كه ما ميخوايم يه فرمت جديد بشناسونيم بعد نوع اون فايلهاي خاص با فرمت دلخواه رو ميگيم مثلا image/png يا text/css بعد ميگيم كه چه فرمتي رو از اين به بعد به عنوان نوعي كه گفتيم بشناس
    من از کدی که گفتید در یه فایل با نام "htaccess" در کنار فایل PHP قرار دادم.

    AddType application/x-httpd-php .asp .jsp



    اما من هر کاری کردم جواب نداد!!!
    چکار کنم؟؟

    ابتدا یه فایل PHP ساختم با نام one.php بعد یک فایل "htaccess" ساختم با مشخصات بالا.اما وقتی آدرس صفحه رو با one.asp و one.jsp و... تست کردم ارور 404 میداد.روی هاست تست کردم.روی لوکال هم جواب نداد.
    لطفا راهنماییم کنید.ممنون

  28. #28

    نقل قول: ترفندهای .htaccess

    من این دستور رو نوشتم
    IndexIgnore * 

    اما وقتی با اسکنر سایت رو اسکن می کنم ، بازم مسیر فایل ها و فولدرهارو نشون میده
    چه کنم ؟

  29. #29

    نقل قول: ترفندهای .htaccess

    یه سوال:
    عوض کردن پسوند های php به aspx و سپس هم از این کد استفاده کردن فایده داره؟ :

    AddType application/x-httpd-php .aspx .jsp

    یعنی تاثیرش چقدره؟ من باید توی کل سایتم تمام پسوند ها و لینک ها رو عوض کنم آخه! ارزشش رو داره؟
    سپاس.

  30. #30

    نقل قول: ترفندهای .htaccess

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

    AddType application/x-httpd-php .asp .jsp



    اما من هر کاری کردم جواب نداد!!!
    چکار کنم؟؟

    ابتدا یه فایل PHP ساختم با نام one.php بعد یک فایل "htaccess" ساختم با مشخصات بالا.اما وقتی آدرس صفحه رو با one.asp و one.jsp و... تست کردم ارور 404 میداد.روی هاست تست کردم.روی لوکال هم جواب نداد.
    لطفا راهنماییم کنید.ممنون
    aspx رو امتحان کنید.
    یعنی:
    AddType application/x-httpd-php .aspx .jsp

  31. #31
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    من این دستور رو نوشتم
    1
    IndexIgnore *

    اما وقتی با اسکنر سایت رو اسکن می کنم ، بازم مسیر فایل ها و فولدرهارو نشون میده
    چه کنم ؟
    همین رو من برای صفحه ادمینم استفاده کردم و درست نمایش می ده ولی اگر نتونستید این روش رو پیاده سازی کنید یک روش دیگر هم هست که توسط تگ meta می تونید از نمایش فایل جلوگیری کنید برای مثال اولین فایلی که اجرا می شه و داخل یک فولدری قرار داد index.php می باشد که یک تگ متا داخل هد بنویس و robots رو مساوی از نوع NOINDEX,NOFOLLOW,NOARCHIVE بگذار . با این کار اگر اسکن کنی دیگه چیزی پیدا نمی شه .

    عوض کردن پسوند های php به aspx و سپس هم از این کد استفاده کردن فایده داره؟
    عوض کردن آدرس های حقیقی به دروغین - خیلی توی امنیت تاثیر داره و هر کسی نمی تونه به همین راحتی بفهمه که به چه صورت آدرس کردید و حتی اگر با کراول ها هم اسکن کنه بازم آدرس حقیقی نشان داده نخواهد شد . و در کل می شه یه قسمت کوچیک از امنیت به حساب بیاد.

    اگر به html تبدیل کنید که توی سئو تاثیر چشم گیری داره که خودتون متوجه میشید .
    آخرین ویرایش به وسیله رضا قربانی : یک شنبه 09 تیر 1392 در 16:43 عصر

  32. #32

    نقل قول: ترفندهای .htaccess

    منظورم این بود که ارزشش رو داره همه فایل ها رو رینیم کنم و بعد هم همه ی لینک ها رو عوض کنم؟؟

  33. #33
    کاربر دائمی آواتار رضا قربانی
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ܓܨ_| ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ _
    پست
    1,824

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط m.mahdim مشاهده تاپیک
    منظورم این بود که ارزشش رو داره همه فایل ها رو رینیم کنم و بعد هم همه ی لینک ها رو عوض کنم؟؟
    بنده هم جواب شما رو در پست قبلی دادم .
    بله ارزشش رو داره

    موفق باشید
    آخرین ویرایش به وسیله رضا قربانی : یک شنبه 09 تیر 1392 در 16:43 عصر

  34. #34

    Angry نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط m.mahdim مشاهده تاپیک
    aspx رو امتحان کنید.
    یعنی:
    AddType application/x-httpd-php .aspx .jsp
    ممنون.اما این رو هم تست کردم ، سورس کد سایت رو مثل فایل txt باز کرد!!!!!!!!!!!!!!!!!!

    این کارا رو کردم جواب نداد.اول کد زیر رو نوشتم
    AddType application/x-httpd-php .aspx .jsp

    بعد فایل مورد نظر رو که one.php بود ، بدون اینکه پسوندش رو عوض کنم ، با آدرس one.asp ، one.aspx و one.jsp تست کردم اما یا ارور 404 میداد یا کل سورس صفحه رو مثل یه فایل txt نمایش میداد!!!!
    بعد پسوند همون فایل one.php رو به asp ، aspx و jsp تغییر دادم و تست کردم بازم جواب نداد!!!!

    دوستان من یه فایل دارم با نام one.php ، میخوام کاری کنم که کاربر عادی نفهمه سایت با php هست.میخوام این فایل با همون فرمت one.php باشه اما اگر کاربر بجاش بزنه مثلا one.aaa هم همون صفحه باز بشه.باید چکار کنم؟؟؟؟؟؟


    ممنون

  35. #35

    نقل قول: ترفندهای .htaccess

    شاید Mod Rewrite شما خاموشه!

  36. #36

    نقل قول: ترفندهای .htaccess

    برنامه ای هست که پسوند همه ی فایل ها رو به صورت یکجا عوض کنه؟

  37. #37

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط m.mahdim مشاهده تاپیک
    شاید Mod Rewrite شما خاموشه!
    ممنون اما چجوری روشن میشه :-)
    میشه راهنمایی کنید؟ممنون ;-)

  38. #38

    نقل قول: ترفندهای .htaccess

    همین رو من برای صفحه ادمینم استفاده کردم و درست نمایش می ده ولی اگر نتونستید این روش رو پیاده سازی کنید یک روش دیگر هم هست که توسط تگ meta می تونید از نمایش فایل جلوگیری کنید برای مثال اولین فایلی که اجرا می شه و داخل یک فولدری قرار داد index.php می باشد که یک تگ متا داخل هد بنویس و robots رو مساوی از نوع NOINDEX,NOFOLLOW,NOARCHIVE بگذار . با این کار اگر اسکن کنی دیگه چیزی پیدا نمی شه .
    ممنون
    اما مشکل اینه که این فایل ها در جستجوی گوگل باید قرار بگیره
    من فقط می خوام جلویگیری کنم از اسکن مسیر یه فولدر خاص یا فایل ها

  39. #39

    نقل قول: ترفندهای .htaccess

    نقل قول نوشته شده توسط ghiravani مشاهده تاپیک
    ممنون اما چجوری روشن میشه :-)
    میشه راهنمایی کنید؟ممنون ;-)
    خوب توی همین تاپیک هست دیگه! برگ اول رو خوب بخونید!

  40. #40

    نقل قول: ترفندهای .htaccess

    من با تغییر در فایل http.conf و برداشتن # و تبدیل همه none ها به All فکر می کنم هنوز mod_rewrite غیر فعاله پیغامی که می ده اینه (البته از Easy PHP استفاده می کنم)
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

صفحه 1 از 5 123 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •