اطلاعیه

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

25 ترفند موثر از ".htaccess" برای امنیت و بهبود عملکرد سایت ها در Apache

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    25 ترفند موثر از ".htaccess" برای امنیت و بهبود عملکرد سایت ها در Apache

    وب سایت ها بخش مهمی از زندگی روزمره ما هستند و به گسترش کسب و کار، اشتراک دانش و موارد بیشمار دیگر معنی میبخشد. و در حقیقت منبعی هستند با میزان عظیمی مخاطب در سرتاسر جهان که آن را مشاهده میکنند این نیاز توسط سرورها اجرا میشود و در حقیقت معنای هاست یک وب سایت را به خود میگیرد و شامل لیستی از سرور ها همانند Apache HTTP Server, Joomla, و WordPress میباشد که امکان هاست وب سایت ها را فراهم میکند.

    هر کسی که میخواهد یک وب سایت را میزبانی کند (Hosting) میتواند یک سرور Local برای خودش ایجاد کند و هر کدام از سرورهای نام برده در بالا را برای میزبانی سایت خود انتخاب کند اما مسئله اساسی و مهم از این جا شروع میشود که نحوه Performance یک وب سایت به طور عمده به عامل های زیر بستگی دارد :
    • پنهای باند اشغال شده توسط وب سایت
    • میزان امنیت یک وب سایت در مقابل هکرها
    • بهینه سازی زمان جستجوی اطلاعات از طریق دیتابیس
    • کاربرپسند بودن نمایش منوها و فراهم آوردن ابزارهای بیشتر UI


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


    در این پست با ابزارهایی همانند ‘.htaccess‘ به منظور افزایش کارایی وب سایت ها و همچنین امن کردن آنها از bad bots, hotlinks آشنا میشویم.


    همچنین توصیه میشود مطالعه بفرمایید :

    13 ترفند برای ایجاد امنیت در وب سرور آپاچی

    نحوه پسورد گذاشتن روی یک فولدر/دایرکتوری با استفاده از htaccess

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



    .htaccess چیست؟

    htaccess (یا hypertext access) فایل هایی هستند که گزینه هایی را برای صاحبان وب سایت فراهم میکنند تا متغییرهایی محیطی سرور و دیگر پارامترها را به منظور افزایش کاربرد وب سایت شان کنترل کنند. این فایل های میتواند در هر دایرکتوری در directory tree در وب سایت موجود باشد و ابزارها را روی دایرکتوری و فایل های درون آن اعمال کرد.

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

    توجه : اگر فایل .htaccess در دایرکتوری /apache/home/www/Gunjit/ قرار داشته باشد در نتیجه دستورات فراهم آمده برای تمامی فایل ها و پوشه های در آن دایرکتوری اعمال میشود اما اگر این دایرکتوری شامل پوشه ی دیگری به نام /Gunjit/images/ باشد که مجددا در آن یک فایل .htaccess دیگر باشد در نتیجه دستورات درون این فولدر روی دستورات فراهم آمده در فایل .htaccess اصلی overwrite میشود.



    فایل های .htaccess و Apache Server

    Apache HTTP Server به صورت محاوره ای آپاچی نامیده میشود که بعد از یک قبیله اصلی آمریکایی به نام Apache برای احترام به مهارت های بالا در استراتژی های جنگی نام گذاری شد. این وب سرور بر اساس C/C++ و XML ایجاد شده و یک وب سرور cross-platform که مبتنی بر سرور NCSA HTTPd میباشد و یک نقش اساسی در رشد و پیشرفت وب در سطح جهان ایفا میکند.

    از آنجایی که اکثرا روی سیستم های UNIX مورد استفاده قرار میگیرد برای انواع platform ها از جمله FreeBSD, Linux, Windows, Mac OS, Novel Netware در دسترس است. در سال 2009 آپاچی اولین سروری شد که بیش از 100 میلیون سایت را پشتیبانی کرد.

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

    نحوه تنظیم فایل htaccess روی سرور apache به شرح زیر میباشد....



    تنظیمات روی سرور Apache

    2 مورد میتواند باشد :

    میزبانی وب سایت روی سرور خودمان
    در این مورد اگر فایل های .htaccess فعال نباشند شما میتوانید آنها را به سادگی و با استفاده از فایل httpd.conf (فعال کانفیگ پیش فرض برای سرویس Apache HTTP) فعال کنید و بخش <Directories> را پیدا کنید :
    کد:
    <Directory "/var/www/htdocs">
    و خط زیر را در آن پیدا کنید :
    کد:
    AllowOverride None
    و شبیه به زیر آن را اصلاح نمایید :
    کد:
    AllowOverride All
    اکنون بعد از ریستارت کردن آپاچی فایل .htaccess کار خواهد کرد.



    میزبانی وب سایت روی سرورهای متفاوت Hosting Provider
    در این مورد بهتر است که با ادمین آن هاستینگ مشورت کنید اگر آنها دسترسی به فایل .htaccess را دادند.



    25 ترفند فایل ‘.htaccess’ از وب سرور Apache برای وب سایت ها


    1 : نحوه فعال کردن mod_rewrite در فایل .htaccess

    گزینه mod_rewrite به شما این امکان را میدهد که از redirection ها استفاده کنیم و URL صحیح تان را با استفاده از redirect کردن به URL های دیگر مخفی کنید. این گزینه بسیار مفید است از جهتی که میتوانید url های طولانی و حجیم را با url های کوتاه و آسان (که راحت در خاطر می مانند) جایگزین کنید.

    برای فعال کردن mod_rewrite خط زیر را به عنوان اولین خط فایل .htaccess تان اضافه کنید :
    کد:
    Options +FollowSymLinks
    این گزینه به شما این امکان را میدهد که symbolic link ها را دنبال کنید و در نتیجه گزینه mod_rewrite را روی وب سایت فعال کنید. و URL را با URL کوتاه و ساده که بعدا ارائه میشود جایگزین کنید.



    2 : نحوه فعال یا غیر فعال کردن دسترسی به وب سایت ها

    فایل .htaccess میتواند دسترسی به وب سایت یا یک پوشه و یا فایل های در یک دایرکتوری را فعال یا غیر فعال کند که با استفاده از عبارات order, allow و deny امکان پذیر هستند.

    فعال کردن دسترسی فقط به ip آدرس 192.168.3.1
    کد:
    Order Allow, Deny
    Deny from All
    Allow from 192.168.3.1
    
    OR
    
    Order Allow, Deny
    Allow from 192.168.3.1
    کلمه order در اینجا مشخص کننده ترتیبی است که دسترسی های allow و deny باید صورت گیرد. برای عبارت order بالا عبارات allow در ابتدا و سپس deny پردازش خواهد شد.

    غیر فعال کردن دسترسی تنها به یک ip آدرس
    خطوط زیر به این معناست :
    دسترسی وب سایت به تمام یوزرها بع غیر از یکی از آنها که ip آن 192.168.3.1 است فعال میشود :
    کد:
    rder Allow, Deny
    Deny from 192.168.3.1
    Allow from All
    
    OR
    
    
    Order Deny, Allow
    Deny from 192.168.3.1


    3 : ایجاد داکیومنت های erro آپاچی برای error code های متفاوت

    با استفاده از چندین خط ساده ما میتوانیم error document که روی error code های متفاوت (که توسط سرور و در زمانی که user یا client درخواست صحفه ای را میکنند که روی وب سایت در دسترس نیست همانند اکثر ما که صفحه ‘404 Page not found’ را در صفحه مرورگرمان دیده ایم ایجاد میشوند) اجرا میشوند را اصلاح کنیم.

    فایل های ‘.htaccess’ مشخص میکند که چه اکشنی به هنگام این چنین شرایط بروز error اتفاق بیوفتند :
    کد:
    ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>
    ‘ErrorDocument’ یک کلمه است و error-code می تواند یکی از 401, 403, 404, 500 و یا هر کد اررور ولید مرتبطی باشد ‘path-of-document’ نمایشگر مسیر روی ماشین local ( زمانی که شما سرور لوکال خودتان را استفاده میکنید) یا روی سرور (زمانی که شما هر سرور دیگری را برای میزبانی وب سایت تان استفاده میکنید) میباشد.

    مثال :
    کد:
    ErrorDocument 404 /error-docs/error-404.html
    خط زیر داکیومنت ‘error-404.html’ را تعریف میکند که در پوشه error-docs قرار گرفته و برای نمایش به هنگامی که سرور error 404 را گزارش میدهد (برای هر درخواست نادرست به یک صفحه توسط کلاینت) مورد استفاده قرار میگیرد :
    کد:
    rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"


    4 : تعریف و عدم تعریف متغییرهای محیطی سرور Apache

    در فایل .htaccess شما میتوانید متغیرهای محیطی Global که سرور امکان ویرایش آنها توسط میزبان های وب سایت را میدهد را تعریف کنید. برای تعریف کردن و نکردن متغییرهای محیطی شما نیاز دارید که خطوط زیر را به فایل .htaccess تان اضافه کنید.

    تعریف متغییرهای محیطی :
    کد:
    SetEnv OWNER “Gunjit Khera”
    غیرفعال کردن متغییرهای محیطی :
    کد:
    UnsetEnv OWNER


    5 : تعریف انواع متفاوت MIME برای فایل ها

    MIME یا Multipurpose Internet Multimedia Extensions انواعی هستند که توسط مرورگر و به صورت پیش فرض تشخیص داده میشوند زمانی که هر web page اجرا میشود. شما میتوانید انواع MIME را برای وب سایت تان در فایل .htaccess تعریف کنید به طوری که انواع متفاوت فایل ها که توسط شما تعریف شده اند تشخیص داده شوند و توسط سرور اجرا شوند :
    کد:
    <IfModule mod_mime.c>
        AddType    application/javascript        js
        AddType application/x-font-ttf        ttf ttc
    </IfModule>
    اینجا mod_mime.c ماژولی برای کنترل تعاریف انواع متفاوت MIME میباشد و اگر شما این ماژول را روی سیستم تان نصب داشته باشید در نتیجه شما میتوانید این ماژول ها را برای تعریف انواع متفاوت MIME برای پسوند های متفاوت (که در وب سایت تان به طوری که سرور بتواند آنها را بفهمد استفاده شده اند) استفاده کنید.



    6 : نحوه محدود کردن سایز آپلود و دانلود در Apache

    فایل های .htaccess به شما امکان استفاده از ابزار کنترل مقدار دیتایی که توسط یک کلاینت خاص از روی وب سایت تان دانلود و یا آپلود میکند را میدهد. برای این شما تنها نیاز دارید که خطوط زیر را به فایل .htaccess تان اضافه کنید :
    کد:
    php_value upload_max_filesize 20M
    php_value post_max_size 20M
    php_value max_execution_time 200
    php_value max_input_time 200
    خطوط بالا حداکثر سایز آپلود، حداکثر سایز اطلاعاتی که ارسال میشوند، حداکثر زمان اجرا (به طور مثال حداکثر زمانی که یک یوزر میتواند یک وب سایت را روی ماشین local خود اجرا کند) و حداکثر زمانی که زمان ورودی ما را محدود میکند تعریف مینماید.



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

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

    خطوط زیر نیاز است که به فایل .htaccess شما اضافه گردد :
    کد:
    AddType application/octet-stream .mp3 .zip


    8 : تعریف دایرکتوری Index برای Website

    اکثر برنامه نویسان وب سایت میدانند که اولین صفحه که نمایش داده میشود به طور مثال Home Page یک وب سایت با عنوان ‘index.html’ نام گذاری میشود اغلب ما هم آن را دیده ایم اما این فایل چگونه تعریف میشود؟

    فایل .htaccess شیوه ای فراهم میآورد تا یک مجموعه ای از صفحاتی که به ترتیب اسکن میشوند لیست شود (زمانی که یک کلاینت درخواست نمایش Home Page یک وب سایت را ارسال میکند و متعاقبا هر یک از مجموعه صفحات لیست شده در صورتی که در لیست مورد نظر با عنوان Home Page وب سایت پیدا شود را برای کاربر نمایش خواهد داد).

    خط زیر برای هدف بالا باید اضافه گردد :
    کد:
    DirectoryIndex index.html index.php yourpage.php
    خط بالا مشخص میکند که اگر هر درخواستی برای نمایش Home Page توسط هر کاربری دریافت شود سپس ابتدا صفحات لیست شده بالا به ترتیب در دایرکتوری سرچ خواهند شد :
    index.html اگر پیدا شود به عنوان Home page سایت نمایش داده خواهد شد در غیر اینصورت لیست به صفحه بعدی به طور مثال index.php مراجعه میکند و این روند همین طور ادامه خواهد داشت تا آخرین صفحه که شما در لیست وارد کرده اید.



    9 : نحوه فعال کردن فشرده سازی GZip برای فایل ها به منظور صرفه جویی در پهنای باند سایت

    این یک نظر رایج است که سایت های سنگین عموما کندتر از سایت های سبک (سایت هایی که میزان فضای کمتری اتخاذ میکنند) اجرا و بالا میآیند. این تنها به این دلیل است که برای یک سایت سنگین مدت زمان زیادی برای Load شدن تصاویر و فایل های اسکریپت بزرگ قبل از نمایش آنها روی مرورگر کلاینت طول میکشد.

    در حقیقت این یک مکانیزم عمومی است که زمانی که یک مرورگر درخواست یک web page را میدهد، سرور آن web page را برای مرورگر فراهم میآورد و اکنون برای نمایش آن web page به صورت Local مرورگر باید آن صفحه را دانلود و سپس اسکریپت را درون آن صفحه اجرا کند.

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

    خط های زیر به شما این امکان را میدهد که سورس فایل های وب سایت تان را فشرده کنید اما برای این کار شما نیاز دارید که شما ماژول mod_deflate.c را روی سیستم تان نصب داشته باشید :
    کد:
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE application/html
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE application/x-javascript
    </IfModule>


    10 : بازی با انواع فایل

    شرایط مشخصی وجود دارند که سرور به صورت پیش فرض آنها را به عهده میگیرد. همانند : فایل های php که روی سرور اجرا میشوند همچنین فایل های .text برای مثال ها مورد استفاده قرار میگیرد. شبیه به این ما میتوانیم یکسری فایل یا cgi-scripts های قابل اجرا ایجاد کنیم که به سادگی به عنوان سورس کد روی وب سایت مان نمایش داده شوند به جای اینکه اجرا شوند.

    برای این منظور خطوط زیر را از یک فایل .htaccess مشاهده نمایید :
    کد:
    RemoveHandler cgi-script .php .pl .py
    AddType text/plain .php .pl .py
    این خط ها به سرور میگویند که .pl (اسکریپت perl)، همچنین .php (فایل php) و .py (فایل پایتون) به معنای این است که تنها نمایش داده شوند و به عنوان cgi-scripts اجرا نشوند.



    11 : تنظیم Time Zone برای سرور Apache

    قدرت و اهمیت فایل های .htaccess را به واسطه این حقیقت میتوان مشاهده کرد که میتوانند برای تعریف Time Zone سرور استفاده شود. این امر به وسیله تعریف یک متغییر Global محیطی ‘TZ’ (از لیست متغییرهای محیطی Global که توسط سرور و برای وب سایت Host شده به منظور اعمال تغییرات فراهم آمده است) انجام میشود.

    به همین دلیل ما تنها میتوانیم TIme را روی وب سایت ها (وب سایت هایی که آن را نمایش میدهند) مطابق با TIme Zone آنها ببینیم. ممکن است فردی که وب سایتش را میزبانی میکند روی سرور Time Zone را مطابق با مکانی که در آن زندگی میکند تعریف کرده باشد.

    خط زیر Time Zone سرور را تعریف میکند :
    کد:
    SetEnv TZ India/Kolkata


    12 : نحوه فعال کردن کنترل Cache روی Website

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

    اما برای چه مدت؟ جواب این سوال به شما بستگی دارد و زمانی که شما در فایل .htaccess تان برای کنترل cache تعریف میکنید. فایل .htaccess میتواند میزان زمانی که صفحات وب سایت میتواند در کش مرورگر بماند را تعریف کند و بعد از مدت زمان Expiration باید کش مرورگر حذف شوند و در دفعه بعدی به هنگام بازدید کاربر از سایت دوباره ایجاد شوند.

    خطوط زیر کنترل cache برای وب سایت تان را پیاده سازی میکند :
    کد:
    <FilesMatch "\.(ico|png|jpeg|svg|ttf)$">
        Header Set Cache-Control "max-age=3600, public"
    </FilesMatch>
    <FilesMatch "\.(js|css)$">
        Header Set Cache-Control "public"
        Header Set Expires "Sat, 24 Jan 2015 16:00:00 GMT"
    </FilesMatch>
    خطوط بالا امکان cache صفحاتی که درون دایرکتوری (دایرکتوری که فایل .htaccess در آن قرار دارد) به مدت یک ساعت را فراهم میآورند.



    13 : تنظیم یک فایل مجزا با استفاده از آپشن <files>

    معمولا محتوای فایل های .htaccess برای تمامی فایل ها و پوشه های دایرکتوری اصلی (دایرکتوری که فایل .htaccess در آن قرار دارد) اعمال میشوند. اما شما همچنین میتوانید یک سری پرمیژن های خاصی به یک فایل خاص بدهید مثلا دسترسی به آن فایل را غیر فعال کنید.

    برای این منظور شما نیاز دارید که تگ <files> به فایل تان و به شیوه زیر اضافه کنید :
    کد:
    <files conf.html="">
    Order allow, deny
    Deny from 188.100.100.0
    </files>
    مورد بالا یک مثال آسان از غیر فعال کردن یک فایل ‘conf.html’ از دسترس ip آدرس 188.100.100.0 میباشد اما شما میتوانید هر قابلیتی که برای فایل .htaccess تا این لحظه شرح دادیم را استفاده کنید همانند Cache-control و GZip compression

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



    14 : فعال کردن اسکریپت های CGI به منظور اجرا شدن خارج از دایرکتوری cgi-bin

    معمولا سرورها اسکریپت های CGI را که درون پوشه cgi-bin قرار گرفته باشند اجرا میکنند اما شما میتوانید اجرا شدن اسکریپ های CGI ای که در پوشه های دلخواه تان قرار دادید فعال کنید اما باید خطوط زیر را به فایل .htaccess موجود در پوشه دلخواه اضافه کنید و در صورت نبودن فایل htaccess باید یکی ایجاد کنید و خطوط زیر را به ان اضافه کنید :
    کد:
    AddHandler cgi-script .cgi
    Options +ExecCGI


    15 : نحوه فعال کردن SSI روی وب سایت با استفاده از htaccess

    Server side includes به عنوان نام پیشنهادی و مربوط چیزهای است که در سمت سرور include میشوند. اما چگونه؟ عموما زمانی که ما تعداد زیادی صفحه روی وب سایت مان داریم و یک منوی نمایش در Home Page مان موجود است که لینک ها به صفحات دیگر را نمایش میدهد ما میتوانیم گزینه SSI یا server side includes را فعال کنیم که همه صفحات موجود در منوی نمایش را برای include شدن با صفحه Home مان به صورت کامل فعال کند.

    SSL شامل شدن چندین صفحه به نحوی که محتوای آنها بخشی از یک صفحه مجزا باشند (به طوری که هر ویرایشی که نیاز است انجام شود تنها در یک فایل صورت گیرد تا میزان زیادی از فضای دیسک آزاد بماند) را مجاز میکند. این گزینه به صورت پیش فرض روی سرورها و برای فایل های .shtml فعال میباشد.

    اگر بخواهید آن را برای فایل های .html هم فعال کنید شما باید خطوط زیر را اضافه کنید :
    کد:
    AddHandler server-parsed .html
    بعد از این، موارد زیر در فایل html منجر به SSI خواهد شد :
    کد:
    <!--#inlcude virtual= “gk/document.html”-->


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

    برای جلوگیری کردن از اینکه هر کلاینت قادر به لیست کردن محتوای دایرکتوری های وب سایت روی سرور نباشد خطوط زیر را به فایل .htaccess موجود در دایرکتوریی که نمیخواهید لیست شود اضافه کنید :
    کد:
    Options -Indexes


    17 : تغییر header های زبان و کاراکتر پیش فرض

    فایل های .htaccess به شما این امکان را میدهند که مجموعه کاراکترهای مورد استفاده در وب سایت تان و همچنین زبان پیش فرض مورد استفاده برای نمایش محتوا به طور مثال ASCII یا UNICODE, UTF-8 و غیره را تغییر دهید.

    متغییرهای محیطی Global سرور که در زیر آورده شده به شما امکان دسترسی به قابلیت بالا را میدهد :
    کد:
    AddDefaultCharset UTF-8
    DefaultLanguage en-US

    Re-writing URL’s: Redirection Rules
    ابزار Re-writing به معنای جایگزینی url های طولانی و سخت با url های کوتاه و آسان میباشد. اما قبل از اینکه به این موضوع بپردازیم یکسری قوانین و قواعدی برای symbol های خاص که بعدا در این پست از آنها استفاده خواهیم کرد میپردازیم :

    Symbol های خاص :
    کد:
    Symbol    #     Meaning
    ==========================================================
    ^         =>    Start of the string
    $         =>    End of the String
    |         =>    Or [a|b] – a or b
    [a-z]     =>    Any of the letter between a to z
    +         =>    One or more occurrence of previous letter
    *         =>    Zero or more occurrence of previous letter
    ?         =>    Zero or one occurrence of previous letter

    قواعد و معنای آنها :
    کد:
    Constant      #     Meaning
    ======================================================================================
    NC            =>    No-case or case sensitive
    L             =>    Last rule – stop processing further rules
    R             =>    Temporary redirect to new URL
    R=301         =>    Permanent redirect to new URL
    F             =>    Forbidden, send 403 header to the user
    P             =>    Proxy – grab remote content in substitution section and return it
    G             =>    Gone, no longer exists
    S=x           =>    Skip next x rules
    T=mime-type   =>    Force specified MIME type
    E=var:value   =>    Set environment variable var to value
    H=handler     =>    Set handler
    PT            =>    Pass through – in case of URL’s with additional headers.
    QSA           =>    Append query string from requested to substituted URL


    18 : Redirect کردن یک URL بدون WWW به یک URL دارای WWW

    قبل از شروع به توضیح ابتدا خطوطی را که برای فعال کردن این ابزار باید در فایل .htaccess اضافه شوند را با هم ببینیم :
    کد:
    RewriteEngine ON
    RewriteCond %{HTTP_HOST} ^abc\.net$
    RewriteRule (.*) http://www.abc.net/$1 [R=301,L]
    خطوط بالا Rewrite Engine را فعال میکنند و سپس در خط دوم تمام URL هایی که به هاست abc.net متعلق هستند یا متغییر محیطی HTTP_HOST در آنها معادل abc.net تعریف شده چک و بررسی میشوند.

    کد آخر تمامی این چنین url هایی را به صورت دائمی به url جدید http://www.abc.net/$1 (در حقیقت $1 همان url بدون www است که هاست abc.net را دارد) ریدایرکت میکند (در حالیکه قانون R=301 فعال است).
    url بدون www همانی است که در براکت قرار دارد و توسط $1 برگردانده میشود.



    19 : Redirect کردن کل یک وب سایت به https

    خطوط زیر به شما کمک می کند تا کل وب سایت را به https منتقل کنید:
    کد:
    RewriteEngine ON
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    خطوط بالا re-write engine را فعال میکند و سپس مقدار متغیر محیطی HTTPS را بررسی می کند. اگر on باشد سپس تمامی صفحات وب سایت را به https انتقال (re-write) میکند.



    20 : یک نمونه از redirection

    بطور مثال url :
    http://www.abc.net?p=100&q=20
    را به:
    http://www.abc.net/10020pq’
    redirect میکنیم :

    کد:
    RewriteEngine ON
    RewriteRule ^http://www.abc.net/([0-9]+)([0-9]+)pq$ ^http://www.abc.net?p=$1&q=$2
    در خطوط بالا مشخصه ی 1$ در حقیقت به براکت اول و 2$ به براکت دوم اشاره می کند.



    21 : تغییر نام فایل htaccess.

    برای اینکه از دیده شدن فایل .htaccess توسط سایر افراد مزاحمدر سرور جلوگیری کنید می توانید این فایل را rename کنید بطوریکه توسط مرورگر کلاینت هم قابل دسترسی نباشد.خط زیر برای این منظور استفاده میشود :
    کد:
    AccessFileName    htac.cess


    22 : نحوه جلوگیری از Image Hotlinking برای website تان

    مشکل دیگری که یکی از عوامل اصلی در مصرف پهنای باند وب سایتها می باشد در حقیقت مشکل hot link است که در حقیقت لینک هایی هستند به وب سایت شما، توسط وب سایت های دیگر که برای نمایش اکثر تصاویر وب سایت شما روی وب سایت خودشان استفاده می کنند و این باعث اشغال شدن پهنای باند شما خواهد شد.

    یک نظریه رایج بر این اساس موجود است که زمانیکه یک سایت تصاویری که به نمایش میگذارد را به واسطه ی hot link از سایت دیگری (سایت شما) لود میکند این عمل لود عکس توسط سایت شما و با استفاده از پهنای باند شما صورت میگیرد. برای جلوگیری از hot linking مثلا روی تصاویر با پسوند .gif, .jpeg خطوط زیر به شما کمک خواهند کرد:
    کد:
    RewriteEngine ON
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERERER} !^http://(www\.)?mydomain.com/.*$ [NC]
    RewriteRule \.(gif|jpeg|png)$ - [F].
    خطوط بالا چک میکنند که آیا برای HTTP_REFERER مقداری تعریف شده ویا بدون مقدار و بدون لینکی به وب سایتتان ست شده یا نه.در این صورت تمامی تصاویر درون سایت شما با یک forbidden 403 جایگزین خواهد شد.



    23 : نحوه redirect کردن کاربران به صفحه ی maintenance (صفحه ای برای مواقعی که سایت در دست تعمیر و بازسازی است)

    زمانی که سایت شما به علت تعمیر و بازسازی بالا نمی آید و شما می خواهید که به تمامی کلاینت هایتان اعلام کنید که سایت در دست تعمیر است، می توانید خطوط زیر را به htaccess. تان اضافه کنید که تنها به admin اجازه ی دسترسی و جایگزین کردن صفحات سایت را که به هر کدام از .jpg, .css, .gif, .js لینک داشته باشند،را میدهد :
    کد:
    RewriteCond %{REQUEST_URI} !^/admin/ [NC]
    RewriteCond %{REQUEST_URI} !^((.*).css|(.*).js|(.*).png|(.*).jpg)     [NC]
    RewriteRule ^(.*)$ /ErrorDocs/Maintainence_Page.html
    [NC,L,U,QSA]
    این خطوط بررسی می کنند که اگر url درخواستی شامل هر درخواستی برای admin page و... که با ‘/admin/’ شروع شوند و یا هر درخواستی به صفحات .jpg, .css, .gif, .js و درخواست های از این قبیل ، آن صفحه با ‘ErrorDocs/Maintainence_Page.html’ جایگزین شود.



    24 : map کردن IP Address به Domain Name

    Name server ها در حقیقت سرورهایی هستند که یک IP Address خاص را به یک Domain Name تبدیل می کنند.این عملیات اصطلاحا mapping همچنین میتواند در فایل های htaccess. و به شیوه ی زیر صورت پذیرد:
    کد:
    For Mapping L.M.N.O address to a domain name www.hellovisit.com
    RewriteCond %{HTTP_HOST} ^L\.M\.N\.O$ [NC]
    RewriteRule ^(.*)$ http://www.hellovisit.com/$1 [L,R=301]
    خطوط بالا بررسی میکند که آیا host برای هر صفحه، آی پی آدرس L.M.N.O را داشته باشد و در این صورت با استفاده خط سوم ، صفحه را به دامین http://www.hellovisit.com و به طور دایم redirect و map خواهد کرد.



    25 : تگ FilesMatch

    شبیه به تگ <files> که برای اعمال شرط به یک فایل مجزا استفاده می شد، تگ <FilesMatch> برای مچ شدن یک گروهی از فایلها استفاده می شود و شرط ها را به گروهی از فایلها اعمال می کند:
    کد:
    <FilesMatch “\.(png|jpg)$”>
    Order Allow, Deny
    Deny from All
    </FilesMatch>


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

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


    با آرزوی موفقیت روزافزون
    محمد هابیلی


    همچنان همراه بمانید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-30-2021, 04:47 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X