فروش ویژه : ثبت دامنه آی آر IR فقط 99 هزار تومان سفارش آنلاین/ تحویل آنی
فروش ویژه : ثبت دامنه دات کام COM فقط 990 هزار تومان سفارش آنلاین/ تحویل آنی (بهترین پیشنهاد)
فروش ویژه : 1500 مگابایت هاست ابری به همراه SSL رایگان ماهیانه فقط 99 هزار تومان مشاهده مشخصات و پلن ها
ترفندهای مفید در وردپرس
امروزه در اکثر سیستم های مدیریت محتوا نظیر وردپرس، یک فایل در شاخه اصلی هاست به نام .htaccess می باشد. این فایل را در حقیقت با نام distributed configuration files می شناسند و در واقع برای کنترل آپاچی هستند که روی یک شاخه و تمام زیر شاخه های آن عمل می کند. این فایلها برای کارکرد در کنار فایلهای معمولی HTML یا PHP قرار میگیرد.
بصورت کلی .htaccess یک فایل مخفی هست که می تواند در هر فولدری جداگانه موجود باشد. مثلا میتوانید دسترسی یه تعدادی از فایل ها را محدود کنید، URL را تنظیم کنید ویا به مدریت فایلهای قابل کش و خصوصیات انها بپردازید و… .
پیشتر در مقاله شناسایی و حذف کدهای مخرب فایل .htaccess.، نحوه شناسایی و علائم کد های مخرب در فایل .htaccess توضیح داده شد.
در این مقاله بر آن شدیم که در رابطه با ترفندهای و دستورات مفید مربوط به فایل .htaccess جهت سیستم مدیریت محتوی وردپرس (Wordpress CMS) توضیحات تکمیلی ارائه نماییم.
توجه مهم : همواره در خاطر داشته باشید پیش از انجام هرگونه تغییر روی فایل .htaccess، نسخه بکاپ مربوطه را تهیه نمایید.
محافظت از بخش مدیریت وردپرس
با محدود کردن دسترسی ها و IP ها به قسمت مدیریت وردپرس، شما می توانید از بخش مدیریت وردپرس خود محاقظت نمایید. جهت این کار می توانید IP های افراد مجاز را وارد نمایید که تنها این افراد قادر باشند به قسمت مدیریت قسمت ادمین وردپرس باشند. شما می توانید با قرار دادن کد زیر در فایل .htaccess وردپرس، از بخش مدیریت وردپرس محافظت کنید.
[bash] AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic <LIMIT GET> order deny,allow deny from all # whitelist Syed's IP address allow from xx.xx.xx.xxx # whitelist David's IP address allow from xx.xx.xx.xxx # whitelist Amanda's IP address allow from xx.xx.xx.xxx # whitelist Muhammad's IP address allow from xx.xx.xx.xxx # whitelist Work IP address allow from xx.xx.xx.xxx </LIMIT> [/bash]
توجه : آدرس آی پی های مورد نظر خود را به جای xx.xx.xx.xxx قرار دهید.
محافظت از رمزعبور پنل مدیریت :
همچنین جهت ایمنی بیشتر وردپرس، شما می توانید جهت ورود به قسمت مدیریت وردپرس احراز هویت ویندوز را نیز فعال نمایید.
برای انجام این کار ابتدا باید فایل .htpasswds را در سایت online htpasswd generator ایجاد نموده و پس از ساخت آن، به مسیر زیر بروید:
home/user/.htpasswds/public_html/wp-admin/passwd/
و فایلی به نام .htpasswds بسازید و کد ایجاد شده را داخل آن قرار دهید. سپس یک فایل .htaccess جدید هم بسازید و آن را باز کرده و کد زیر را به آن اضافه کنید:
[bash] AuthName "Admins Only" AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd AuthGroupFile /dev/null AuthType basic require user putyourusernamehere <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> [/bash]
توجه : به جای مسیر AuthUserFile در کد بالا، مسیر دقیق فایل .htpasswds که ساختید را وارد نمایید.
غیرفعال کردن دسترسی به فایل های هاست :
با استفاده از ویژگی Index Manager میتوانید نحوه ی نمایش دایرکتوری ها را در وب سایت خود سفارشی نمایید. بدین معنا که به صورت پیش فرض اگر فایل index در یک دایرکتوری موجود نباشد، محتوای دایرکتوری در مرورگر نمایش داده میشود که این امر با توجه به مسایل امنیتی به هیچ وجه توصیه نمی شود. در واقع با فعال کردن دسترسی به فایل های هاست هکر ها به راحتی می توانند به فایل های شما دسترسی پیدا کرده و باگ را پیدا می کنند.
همچنین علاوه بر قابلیت بالا، شما می توانید برای غیر فعال کردن دسترسی به فایل های هاست کد زیر را در فایل .htaccess وردپرس قرار دهید:
[bash] Options -Indexes [/bash]
محافظت از فایل .htaccess :
برای جلوگیری از سرقت و یا تغییرات ناخواسته در اطلاعات فایل .htaccess ، کد زیر را در ابتدای فایل .htaccess قرار دهید:
[bash] <files ".htaccess"> order allow,deny deny from all </files> [/bash]
غیرفعال کردن اجرای PHP در برخی مسیرهای وردپرس :
گاهی اوقات در سایت های وردپرسی که هک شده اند، فایلی به نام backdoor وجود دارد. این فایل یا فایل ها معمولا در مسیر wp-includes و یا wp-content/uploads هستند. Backdoor ها در واقع فایل هایی هستند که توسط هکران ایجاد می شوند و به معنای "در پشتی/مخفی" برای دسترسی به هاست شما ساخته می شوند. حالا یک راه ساده و مفید برای افزایش امنیت سایت وردپرسی در مقابل این فایل ها، غیرفعال کردن اجرای php در برخی مسیرهای وردپرس است.
جهت این کار یک فایل .htaccess جدید ساخته و کد زیر را داخل آن قرار دهید:
[bash] <Files *.php> deny from all </Files> [/bash]
سپس این فایل را در مسیر های /wp-content/uploads/ و/wp-includes/ آپلود کنید.
امنیت فایل wp-config.php ( فایل پیکربندی وردپرس) :
به جرات می توان گفت که مهم ترین فایل هاست که شامل اطلاعات پیکربندی و پایگاه داده سایت وردپرسی است، فایل wp-config.php می باشد. برای افزایش امنیت فایل wp-config.php کد زیر را به .htaccess وردپرس اضافه کنید:
[bash] <files wp-config.php> order allow,deny deny from all </files> [/bash]
ریدایرکت ۳۰۱ :
استفاده از ریدایرکت ۳۰۱ بهترین روش برای ریدایرکت کردن از نظر سئو است. برای استفاده از این قابلیت کافیست کد زیر را در .htaccess وردپرس قرار دهید:
[bash] Redirect 301 /oldurl/http://www.yourdomain.com/newurl Redirect 301 /category/television/http://www. yourdomain.com/category/ [/bash]
توجه : لینک های بالا نمونه هستند و شما می بایست لینک مربوطه را قرار بدید.
بستن آی پی آدرس های مشکوک :
در صورتی که IP Address های خاص،مشکوک و غیرمعمولی سایت شما را می بینند، برای مسدود کردن آنها کافی است که کد زیر را در .htaccess وردپرس قرار دهید:
[bash] <Limit GET POST> order allow,deny deny from xxx.xxx.xx.x allow from all </Limit> [/bash]
توجه : آدرس آی پی های مورد نظر خود را به جای xx.xx.xx.xxx قرار دهید.
غیرفعال کردن hotlinking تصاویر :
Hotlinking یا به عبارت دیگر سرقت پهنای باند، به عمل قرار دادن تصاویر سایت در سایت دیگر است. بدین صورت که زمانی که تصاویری از سایت شما در سایت دیگری کپی می شود، به ازای هر بازدید در آن سایت پهنای باند شما کم می شود.
در صورتی که تمایل دارید کاربران هنگام کپی مقالات و یا تصاویر شما در سایت خودشان عمل سرقت پهنای باند اجرا نشود می توانید کد زیر را در فایل .htaccess وردپرس خود قرار دهید:
[bash] #disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpschool.ir [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?http://wpschool.ir/feed [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L] [/bash]
محافظت از .htaccess در برابر دسترسی های غیرمجاز :
ترفند های مختلف فایل .htaccess وردپرس را یاد گرفتیم، حالا برای افزایش قدرت و امنیت سرور بهتر است که فایل .htaccess وردپرس را در برابر دسترسی های غیرمجاز هم ایمن کنید.
جهت این کار، کد زیر را داخل فایل .htaccess وردپرس قرار دهید:
[bash] <files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files> [/bash]
معرفی زبان پیشفرض (DefaultCharset) :
برای اینکه زبان پیشفرض استفاده شده رو به مرورگر ها معرفی نمایید، با دستور کوتاه زیر اعلام می کنیم که همیشه صفحات را با زبان خاصی ارسال کنند. این عمل روی سئو سایت نیز تاثیری مثبتی دارد.
[bash] # pass the default character set AddDefaultCharset utf-8 [/bash]
تعیین صفحات سفارشی برای صفحات خطا:
با دستورات زیر می توانید صفحاتی را که هنگام ایجاد کد خطاهای Http، نمایش داده می شود، را بصورت دلخواه طراحی و در پوشه error قرار دهید. سپس مسیر آن ها را بصورت زیر مشخص نمایید.
[bash] ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php [/bash]
جلوگیری از ارسال دیدگاه اسپم در وردپرس :
افزونه اکیسمت افزونه شناخته شده ای در زمینه جلوگیری از ارسال اسپم هست که در بسته اصلی خود وردپرس هم وجود دارد. اما شما میتونید با استفاده از کد زیر نیز از ارسال هرزنامه به وبسایتتان جلوگیری کنید. دقت داشته باشید که در خط چهارم بجای yourdomain آدرس سایت خودتان را وارد کنید.
[bash] RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourdomain.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] [/bash]
لینک سایت با استفاده از www یا بدون www
اینکه سایت از هر دو روش امکان بارگزاری داشته باشد، روی سئوی سایت تاثیر منفی خواهد داشت. چون در اینصورت روبات های گوگل تصور می کنند دو دامنه یک مطلب مشابه را منتشر میکند و در نتیجه از ارزش هر دو سایت کاسته می شود. طبق تجربه سئو بهتره سایت بدون www باشه دلیل آن نیز کوتاه شدن دامنه هست.
توجه مهم : در صورتی که تاکنون سایت شما با www بود و ایندکس هایی که تو گوگل دارید به این صورت ذخیره شدند، انجام این تغییر باعث از بین رفتن ایندکس قبلی و در نتیجه رتبه گوگل شما خواهد شد.
برای اینکه سایت بدون www را قفل کنید، کافیست کد زیر را در .htaccess قرار دهید. البته آدرس دامنه خود را بجای yourdomain.com در خط دوم و سوم وارد کنید :
[bash] RewriteEngine On RewriteCond %{HTTP_HOST} !^yourdomain\.com$ [NC] RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L] [/bash]
و برای قفل کردن دامنه فقط با www از این کد استفاده کنید:
[bash] RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] [/bash]
مخفی کردن فرمت ها(add mime type) :
یک راه امنیتی که جهت حفاظت از اسکریپت های PHP شما اکیدا پیشنهاد میشود این است که آنها PHP نباشند! برای مثال: فایل PHP شما با فرمت ASP باز شود!!
[bash] AddType application/x-httpd-php .asp .jsp [/bash]
محدود کردن نوع فایلهای قابل اجرا و نمایش :
برای حفظ امنیت و اطلاعات سایت می توانید پسوند فایل های خود را مشخص نمایید :
[bash] Options +FollowSymlinks RewriteEngine On rewritecond %{REQUEST_FILENAME} !^(.+).css$ rewritecond %{REQUEST_FILENAME} !^(.+).js$ rewritecond %{REQUEST_FILENAME} !file.php$ RewriteRule ^(.+)$ /deny/ [nc] [/bash]
با استفاده از کد بالا کاربر فقط اجازه باز کردن فایل هایی با پسوند css , js و php رو داره و در صورت درخواست سایر پسوندها، به پوشه denyریدایرکت می شوند.
ایجاد محدودیت در آپلود فایل :
با کد زیر میتوانید حداکثر حجم فایل قابل آپلود را تنظیم نمایید.
[bash] php_value upload_max_filesize 20M [/bash]
ایجاد محدودیت در حجم پست ارسالی :
با کد زیر میتوانید حداکثر حجم هر پست را تعیین کرد:
[bash] php_value post_max_size 2M [/bash]
نمایش پیغام requast time در بازه زمانی مشخص:
requast time حداکثر زمان درخواست فراخوانی یک صفحه هست :
[bash] php_value max_execution_time 200 [/bash]
حداکثر زمان دریافت اطلاعات POST و GET :
با کد زیر میتوانید حداکثر زمان دریافت اطلاعات POST و GET را تعیین کرد:
[bash] php_value max_input_time 250 [/bash]
فعال کردن قابلیت Gzip :
وقتی کاربر از طریق مروگر سایت درخواست نمایش سایت شما را میدهد، این درخواست به سرور شما ارسال میشود و سرور فایلهایی که برای نمایش سایت شما لازم هست رو جمع آوری نموده و به مرورگر کاربر میفرستد. در صورتیکه از قابلیت Gzip استفاده کنید، هنگام درخواست، سرور فایلهای مورد نیاز را به صورت فشرده به مرورگر ارسال میکند.
در صورت پشتیبانی شرکت هاستینگ شما از این قابلیت، مشابه کد زیر را برای فعال شدن این قابلیت در فایل .htaccess قرار بدید.
[bash] # BEGIN Compress text files <ifModule mod_deflate.c> <filesMatch "\.(css|js|x?html?|php|woff|ttf|png|jpg|gif)$"> SetOutputFilter DEFLATE </filesMatch> </ifModule> # END Compress text files [/bash]