پارس دیتا
کد: KB-WP-C2-FA-168
زمان انتشار: دوشنبه 18 فروردین 1399

دستورات کاربردی جهت بهینه سازی فایل htaccess

امروزه در اکثر سیستم‌های مدیریت محتوا شبیه به وردپرس فایلی در روت هاست به نام htaccess وجود دارد، نام اصلی این فایل در واقع distributed configuration files می‌باشد و برای کنترل وب سرور آپاچی می باشد که روی یک شاخه و تمام زیر شاخه های آن نیز تغییرات اعمال می نماید. این فایل‌ برای کارکرد در کنار فایل‌های معمولی HTML یا PHP قرار می‌گیرد، قابل ذکر است، این فایل اسم ندارد و فقط از بخش پسوند تشکیل شده و به صورت htaccess. دیده می شود.
  • محافظت از فایل htaccess. : 

    برای جلوگیری از سرقت اطلاعات فایل htaccess قطعه کد زیر را در ابتدای فایل htaccess قرار دهید:

    <files ".htaccess">
    order allow,deny
    deny from all
    </files>
  • جلوگیری از سرقت فایلها و فولدرهای درون هاست :

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

    Options All -Indexes
  • معرفی زبان پیشفرض (DefaultCharset) :

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

    # pass the default character set AddDefaultCharset utf-8
  • تعیین صفحات سفارشی برای صفحات خطا :

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

    ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php
  • بن کردن اسپمرها با .htaccess (محدودیت دسترسی از طریق آی پی) :

    مسدود نمودن IP های اسپمر ها و اتکر ها از طریق Htaccess.

    <Limit GET POST>
    order allow,deny
    deny from 200.49.176.139
    allow from all
    </Limit>

    دستور “allow from all” به این معنا می باشد که تمام IPها بجز IPهای مسدود شده دسترسی به سایت را دارند. اگر قصد دسترسی دادن به یک IP خاص را دارید کافی است قطعه کد را به این شکل وارد نمائید “allow from 188.50.38.143” و به جای IP ذکر شده IP مورد نظر را وارد نمائید. با کمک دستور “deny from 200.49.176.139” دسترسی این IP ها را به سایت محدود می سازیم و امکان اضافه نمودن هر تعداد IP نیز وجود دارد، اگر این کد را “deny from all” وارد نمایید دسترسی تمامی IP ها را به سایت محدود می سازید و می بایست تنها به IP هایی که قرار است به سایت دسترسی داشته باشند را در قطعه کد اضافه نمایید.

  • جلوگیری از ارسال دیدگاه اسپم در وردپرس :

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

    RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
  • حذف آدرس های Category از سایت وردپرسی:

    این مورد از داخل CMS قابل انجام می باشد، تنها جهت یک راه حل این مورد ارائه گردیده است.

    RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]
  • تغییر DefualtDoc با کمک Htaccess:
    DirectoryIndex file.php file.html
  • ورود به سایت با www یا بدون www:

    برای باز شدن سایت بدون www قطعه کد ذیل را در فایل Htaccess قرار دهید :

    RewriteEngine On RewriteCond %{HTTP_HOST} !^yoursite\.com$ [NC] RewriteRule ^(.*)$ http://yoursite.com/$1 [R=301,L]
  • بالا بردن امنیت فایل wp-config.php در htaccess :

    جهت بالا بردن امنیت فایل های مهم سایت برای مثال فایل کانفیگ دیتابیس در وردپرس و CMS های رایگان دیگر با قرار دادن قطعه کد ذیل در Htaccess می توان امنیت این فایل ها را بالا برد و از سرقت اطلاعات آنها نیز جلوگیری نمود :

    <files wp-config.php> order allow,deny deny from all </files>
  • معرفی نمودن فرمت‌های جدید با کمک Htaccess add mime type :


    AddType application/x-httpd-php .asp .jsp
  • برای ریدایرکت /Redirect نمودن آدرس سایت به آدرسی دیگر از قطعه کد ذیل می توانید استفاده نمایید :


    Redirect /Dirold/old.html http://site.com/DirNew/new.html
  • محدود نمودن نوع فایلهای قابل اجرا و نمایش :

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

    Options +FollowSymlinks RewriteEngine On rewritecond %{REQUEST_FILENAME} !^(.+).css$ rewritecond %{REQUEST_FILENAME} !^(.+).js$ rewritecond %{REQUEST_FILENAME} !file.php$ RewriteRule ^(.+)$ /deny/ [nc]
  • تغییر محدودیت در آپلود:
    php_value upload_max_filesize 20M
  • تغییر محدودیت در حجم پست ارسالی :
    php_value post_max_size 2M
  • حداکثر زمان دریافت اطلاعات POST و GET :
    php_value max_input_time 250
  • نمایش پیغام requast time در بازه زمانی مشخص :
    php_value max_execution_time 200
  • جلوگیری از سرقت پهنای باند، فایل‌ها و عکس‌ها :
    RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?site.com/ .*$ [NC] RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
  • فعال کردن قابلیت Gzip :
    # BEGIN Compress text files <ifModule mod_egzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </ifModule> # END Compress text files
  • مدیریت Cache فایلها :
    # BEGIN Expire headers <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 1 month" ExpiresByType image/x-icon "access plus 1 year" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType text/css "access plus 1 month" ExpiresByType text/javascript "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType application/x-javascript "access plus 1 year" ExpiresByType text/html "access plus 600 seconds" ExpiresByType application/xhtml+xml "access plus 600 seconds" ExpiresByType font/ttf "access plus 1 year" ExpiresByType font/woff "access plus 1 year" </ifModule> # END Expire headers # BEGIN Cache-Control Headers <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf|woff|ttf)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "max-age=2592000, private" </filesMatch> <filesMatch "\.(x?html?|php)$"> Header set Cache-Control "max-age=600, private, must-revalidate" </filesMatch> </ifModule> # END Cache-Control Headers # BEGIN Turn ETags Off <ifModule mod_headers.c> Header unset ETag </ifModule> FileETag None # END Turn ETags Off # BEGIN Remove Last-Modified Header <ifModule mod_headers.c> Header unset Last-Modified </ifModule> # END Remove Last-Modified Header
  • حل مشکل تعداد آیتم های فهرست وردپرس :
    </IfModule mod_php.c> php_value suhosin.post.max_vars 7000 php_value suhosin.request.max_vars 7000 <//IfModule>
  • افزایش امنیت محتوای فولدر wp-includes :
    # Block the include-only files. RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L]
آخرین بروزرسانی: شنبه 17 مهر 1400 9:31:24