فایل .htaccess یک فایل برای پیکربندی قابل استفاده از وب سرور آپاچی میباشد که محتویات فایل .htaccess در وردپرس اگر بدرستی تنظیم شده باشند شما میتوانید سایت خود را از لحاظ امنیتی تا حد بسیار زیادی ارتقاء دهید، از سرعت بیشتر لذت ببرید با استفاده از کد های ریدایرکت در این فایل سئوی داخلی سایت خود را کنترل بکنید و با استفاده از کش که در تنظیمات htaccess در وردپرس وجود دارد سرعت قالب وردپرس سایت خود را افزایش دهید.
معمولا تنظیمات htaccess در وردپرس برای افزایش امنیت در سایت و بهبود عملکرد میباشد اما در این مقاله آموزش وردپرس برای شما چند قطعه کد بسیار مهم و ضروری در این مورد را قرار داده ایم که میتوانید در سایت خود قرار دهید. با توجه به اینکه اکثر سایت های وردپرسی بر روی وب سرور های آپاچی اجرا میشوند و از Nginx قدرت گرفته اند در این مقاله مجموعه ای از کد های مفید مربوط به محتویات فایل .htaccess در وردپرس را برای شما قرار داده ایم که میتوانید از آن ها برای افزایش امنیت و کارای سایت خود استفاده بکنید.
قبل از شروع به هر تغییری حتما از فایل .htaccess اولیه خود بکاپ بگیرید تا اگر مشکلی پیش آمد بتوانید با قرار دادن کد های قبلی سایت مشکل را رفع بکنید.
فایل .htaccess کجاست؟
این فایل .htaccess که اول آن . {نقطه} قرار دارد در همان پوشه public_html یا پوشه روت سایت شما قرار دارد ، اگر شما این فایل را مشاهده نمیکنید ممکن است که این فایل را نداشته باشید براحتی میتوانید با استفاده از فایل منجر هاست خود این فایل را بسازید و کد های خودتان را درآن قرار دهید.
1. بصورت پیش فرض محتویات فایل .htaccess در وردپرس چه باید باشد؟
بصورت پیش فرض زمانی که شما از وردپرس استفاده میکنید کد زیر در آن قرار دارد همچنین این کد را خود سایت وردپرس ارائه کرده است و در اینجا میتوانید مشاهده بکنید. کد بالا بصورت پیش فرض میباشد و فقط برای وردپرس عادی میباشد و اگر شما از وردپرس شبکه استفاده بکنید بدرد شما نمیخورد یا اگر در پوشه یا ساب دامین وردپرس را نصب کرده باشید این کد برای شما کار نمیکند.
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
در محتویات فایل .htaccess در وردپرس و کد بالا خط هایی که در اول آن ها همانند خط اول و آخر در کد بالا که اولشان # قرار گرفته است بصورت کامنت میباشند و برای تشخیص دادن کد یا شناختن اول و آخر کد ها یا برای نوشتن توضیحات استفاده میشوند و اگر این خط ها پاک شوند در روند اجرای کد تاثیری نخواهند داشت چون این خط ها اصلا اجرا نمیشوند در بالا # BEGIN WordPress
و # END WordPressبه همین صورت هستند.
2. تنظیمات htaccess وردپرس برای جلوگیری از مشاهده کانفیگ سرور
با فایل با اینکه برای اعمال تنظیمات و کانفیگ بر روی سرور میباشد میتواند برای هکر ها نیز راهی مناسب برای مشاهده وضعیت و کانفیگ سرور شما باشد و از این طریق بتوانند باگ های سرور شما را پیدا بکنند و به سایت شما آسیب بزنند برای جلوگیری از همچنین مشکلاتی محتویات فایل .htaccess در وردپرس باید به گونه ای باشد که از طریق فایلی که در روت سرور شما وجود دارد اجازه دسترسی به همه فایل های دیگر بسته شود.
# Denies access to all .htaccess files <Files ~ "^.*\.([Hh][Tt][Aa])"> Order Allow,Deny Deny from all Satisfy all </Files>
3. جلوگیری از حملات دیداس XML-RPC با تغییر محتویات فایل .htaccess در وردپرس
حمله دیداس چیست؟ یک نوع حمله مخرب میباشد که در آن کسی وارد پنل مدیریت سایت نمیشود یا در سایت تغییری اعمال نمیشود ولی شخص خرابکار با ارسال تعداد زیادی request به سرور موجب میشود تا همه پهنای باند سرور گرفته شود و سایت شما دیگر لود نشود (زمانی که نتیجه کنکور می آید بدلیل اینکه تعداد بازدیدکنندگان سایت سازمان سنجش خیلی بالاست بعضی وقتا سایتشون مشکل قطع و وصلی براش پیش می آید که در حمله دیداس هم دقیقا اینطوری هست ولی در سایت سازمان سنجش کاربران واقعی هستند و قصد خرابکاری ندارند)
وردپرس بصورت پیش فرض از XML-RPC پشتیبانی میکند که زمینه برای حملاتی همانند دیداس را برای شما مهیا میکند با اینکه این مورد موجب میشود تا سایت شما ظرفیت بیشتری داشته باشد و یک مزیت هست اما بدلایلی یک نقض امنیتی هم میباشد و ممکن است که هکر ها از آن برای حملات دیداس استفاده بکنند.
اگر شما یک سایت عادی دارید و از قابلیت XML-RPC استفاده نمیکنید بهتر است که آن را غیرفعال کنید تا جلوی حملات دیداس گرفته شود و اگر زمانی بخواهید که به یک شخص خاصی اجازه دسترسی دهید میتوانید در کد زیر خط # Allow from xx.xx.xx.xxx را تغییر دهید و # اول آن را بردارید و به حای XX ها IP مورد نظر خود را وارد بکنید مثلا ip مدیران
# Protects XML-RPC, prevents DDoS attack <FilesMatch "^(xmlrpc\.php)"> Order Deny,Allow # Allow from xx.xx.xx.xxx # Allow from yy.yy.yy.yyy Deny from all </FilesMatch>
4. مراقبت از کانفیگ وردپرس در htaccess
در وردپرس یک فایل به نام wp-config.php وجود دارد که برای اعمال کانفیگ بر روی وردپرس میباشد و مهم ترین اطلاعات سایت مانند اطلاعات دیتابیس سایت در آن قرار دارد و اگر شخصی به آن دسترسی پیدا بکند میتواند سایت شما را براحتی هک بکند بخاطر همین اعمال تنظیمات htaccess در وردپرس و محافظت از این فایل بسیار مهم میباشد. برای افزایش امنیت این فایل پیکربندی در وردپرس میتوانید اجازه دسترسی به آن را برای همه بجز مدیر سایت ببندید جوری که فقط مدیریت سایت دسترسی به این فایل را داشته باشد.
براحتی با وارد کردن رنجIP خودتان میتوانید دسترسی ها را فقط برای خودتان باز بکنید ، باری اینکار کافی است که در کد های زیر # Allow from xx.xx.xx.xxx که میبینید اولا # اول خط را پاک کنید و بعد از پاک کردن آن # به جای xx.xx.xx.xxx آدرس IP خودتان را وارد بکنید و محتویات فایل .htaccess در وردپرس را بروز بکنید.
# Protects wp-config <Files wp-config.php> Order Allow,Deny # Allow from xx.xx.xx.xxx # Allow from yy.yy.yy.yyy Deny from all </Files>
5. محافظت از ناحیه مدیریت با تنظیمات htaccess در وردپرس
میتوان براحتی با محافظت از ناحیه مدیریت و پیشخوان سایت وردپرس با محتویات فایل htaccess در وردپرس امنیت را بالا برد به گونه ای که فقط مدیریت سایت دسترسی به پیشخوان را داشته باشد و دسترسی برای سایر کاربران بسته شود. همچنین بدلیل اینکه در این روش شما Ip خود را وارد میکنید بخاطر همین اگر ip شما تغییر کند دیگر دسترسی به این بخش را نخواهید داشت. همچنین در کد بالا 2 خط کد با Allow شروع میشوند که باید حداقل در مقاله یکی از آن ها ip خود را وارد بکنید در غیر اینصورت به هیچ عنوان دسترسی نخواهید داشت
# Protects admin area by IP AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic <LIMIT GET> Order Deny,Allow Deny from all Allow from xx.xx.xx.xxx Allow from yy.yy.yy.yyy </LIMIT>
6. مخفی کردن لیست دایرکتوری ها برای افزایش امنیت و جلوگیری از مشاهده فایل ها توسط همه
یکی از مشکلاتی که در سایت ها وجود دارد قابلیت مشاهده کردن فایل ها و پوشه ها میباشد که موجب میشود تا هر کسی بتواند محتوای آپلود شده در سایت شما را ببیند و به همین خاطر خیلی ها میتوانند براحتی قالب وردپرس سایت شما را ریپ و کپی بکنند
بخاطر همین با با تنظیمات htaccess در وردپرس و مخفی کردن لیست دایرکتوری ها میتوان امنیت را از این جهت ارتقا داد و مانع مشاهده برای کاربران شد (همانند عکس بالا) و خوشبختانه فقط با افزودن 1 خط کد میتوان این قابلیت را به سایت اضافه کرد و شرایطی را فراهم کرد که هر شخصی قصد مشاهده لیست دایرکتوری های شما را داشته باشد با خطای 403 روبر شود
# Prevents directory listing Options -Indexes
7. فعال کردن کش وردپرس با تنظیمات htaccess در وردپرس
زمانی که شما از یک قالب وردپرس استفاده میکنید و مطالب و تصاویر را به شما نمایش میدهد اگر مجددا وارد سایت شوید باید مجددا پردازش هایی برای نمایش این موارد در سایت انجام شودبخاطر همین با فعال کردن کش شما میتوانید در مروگر کاربران مشخص بکنید که محتویاتی که مشخص میکنید تا چه مدت زمانی باقی بماند که این مورد تاثیر بسیار زیادی بر روی سرعت لود شدن سایت شما بدون ناسازگاری با قالب وردپرس سایت را دارد.
بهینه ترین کد برای کش کشدن محتویات در مرورگر تنظیمات htaccess در وردپرس :
# Enables browser caching <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule>
همچنین برای اینکه بتوانید سرعت لود شدن سایت خود را به حداکثر برسانید میتوانید از مقالات افزایش سرعت وردپرس استفاده بکنید.
با تشکر از همراهی شما دوستان در این مقاله آموزش وردپرس اگر سوال یا مشکلی داشته باشید در قسمت نظرات مطرح بکنید تا راهنمایی شوید همچنین اگر قصد خرید قالب وردپرس را دارید وبمستر98 بهترین مکان برای شماست