در این بخش از آموزش های قدم به قدم کار با وردپرس کدهای ضروری .htaccess برای کاربران وردپرس را معرفی می کنیم، توضیح میدهیم که چگونه کار می کند و در مورد نحوه ویرایش آن بحث می کنیم. ما همچنین می توانیم چندین ترفند امنیتی مفید را معرفی کنیم که به آسانی میتوانید خودتان آن را اجرای کنید. پس در ادامه با ما همراه باشید.
[toc]

ایمن نگه داشتن سایت باید اولویت اول برای هر مدیر باشد. وردپرس یک cms زیاد امنی نیست، اما بدان معنی نیست که براحتی مورد حملات امنیتی قرار بگیرد و براحتی بتوان به آن دسترسی پیدا کرد اما با کدهای ضروری .htaccess برای کاربران وردپرس میتوانید امنیت و ایمنی سایت را به حداکثر برسانید.
[su_note note_color=”#c98aa7″ text_color=”#ffffff” radius=”5″ class=”.aylin_mahmoud”].htaccess یک فایل پیکربندی برای وب سرور آپاچی است که در بسیاری از سایت های وردپرس یا غیر وردپرس استفاده می شود. این فایل یک ابزار قدرتمند است که به شما کمک می کند سایت خود را حفظ کنید و عملکرد آن را افزایش دهید، از طریق برخی از اصلاحات جزئی و با ویرایش این فایل، شما می توانید کاربران را منع کنید از تغییر مسیر، جلوگیری از حملات، و حتی ممنوعیت دسترسی به بخش های خاص سایت. [/su_note]
مقدمه ای بر فایل htaccess
نام فایل .htaccess و یا مخفف شده”HyperText Access” است. این یک فایل پیکربندی است که تعیین می کند چگونه سرورهای مبتنی بر Apache با سایت شما ارتباط برقرار کنند. در شرایط ساده، .htaccess چگونگی کنترل دسترسی فایل ها در یک پوشه را می دهد. شما می توانید به عنوان یک “نگهبان” برای سایت خود فکر کنید، در این صورت تصمیم می گیرد که به چه کسی اجازه دهید که چه کاری انجام دهد. برای همین ما کدهای ضروری .htaccess برای کاربران وردپرس را برای شما عزیزان آماده کردیم.
به طور پیش فرض، فایل htaccess. معمولا در مسیر نصب وردپرس شما موجود است که هنگام نصب وردپرس هم ایجاد میشود. هدف اصلی فایل .htaccess بهبود امنیت و عملکرد، و همچنین شما را قادر به تغییر تنظیمات وب سرور میکند.
شما باید فایل .htaccess خود را در دایرکتوری ریشه (مسر نصب وردپرس) سایت خود پیدا کنید. از آنجا که .htaccess در ریشه اصلی سایت ایجاد میشود، کل سایت وردپرس شما را تحت تاثیر قرار می دهد. همچنین لازم به ذکر است که فایل .htaccess پسوند خاصی ندارد.
نحوه ویرایش فایل .htaccess
در حال حاضر ویرایش فایل .htaccess، همانند ویرایش هر فایل متنی دیگر، ساده است. با این حال، چون این یک فایل هسته محسوب میشود، پس ایجاد تغییرات در آن می تواند عواقب ناخواسته ای داشته باشد. به همین دلیل، بسیار مهم است که قبل از شروع کار، بدون توجه به اینکه شما مبتدی یا یک توسعه دهنده باتجربه هستید، از سایت یا از فایل .htaccess یک آپ یل نسخه پشتیبان تهیه کنید.
هنگامی که شما آماده ویرایش و ایجاد تغیرات در این فایل شدید از طریق ftp یا سی پنل یا دایرکت ادمین فایل را پیدا کنید که در مسیر اصلی نصب وردپرس موجود است.

فایل را با استفاده از ویرایشگر متن مورد نظر خود مانند TextEdit یا Notepad باز کنید. اگر فایل قبلا ویرایش نشده باشد، اطلاعات پیش فرض زیر را خواهید دید.

در این آموزش وردپرس، مهم است که بین برچسب های # BEGIN و # END اضافه یا تغییر ایجاد نکنید. در عوض، تمام کدهای جدید باید بعد از این بلوک اضافه شود.
در این مرحله، همه چیزهایی که باید انجام دهید این است که کد خود را اضافه کنید و فایل را ذخیره کنید. هنگامی که از چندین توابع جدید استفاده می کنید بهتر است هر یک را به صورت جداگانه ذخیره و آزمایش کنید. اگر یک خطا رخ دهد، این باعث می شود که رفع مشکلی که باعث تغییر آن شده است، بسیار ساده تر شود.
کد های پیشفرض .htaccess :
#This Apache config file was created by Duplicator Installer on 2019-02-17 07:51:14. #The original can be found in archived file with the name htaccess.orig # BEGIN WordPress RewriteEngine On RewriteBase /zenith/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /zenith/index.php [L] # END WordPress
شما می توانید این کار را با استفاده از یک ویرایشگر متن انجام دهید، تا زمانی که آن را با نام فایل : .htaccess بدون پسوند ذخیره نکنید فایل هسته محسوب نمیشود. همچنین مهم است که تنظیمات مجوز را به درستی انجام دهید. پس از آن شما می توانید آن را به دایرکتوری ریشه سایت خود آپلود کنید.
7 کاری که می توانید با فایل .htaccess وردپرس خود انجام دهید
اکنون شما در این آموزش وردپرس، با فایل .htaccess آشنا شدید، وقت اضافه کردن کدهای ضروری .htaccess برای کاربران وردپرس هستش. ما قصد داریم تعدادی از روش های ارائه شده را به شما معرفی کنیم که می توانید با ویرایش این فایل، امنیت و عملکرد سایت خود را افزایش دهید. نگران نباشید این کدها کاملا تست شده هستند و مشکلی پیش نمی آید ولی برای اطمینان، از فایل .htaccess یک نسخه پشتیبان تهیه کنید.
#1 دسترسی به قسمت های سایت را ممنوع کنید
یکی از مفیدترین مواردی که می توانید با .htaccess انجام دهید تنظیم عدم دسترسی به صفحات و فایل های خاص است. چند فایل وجود دارد که باید به دلایل امنیتی مخفی باشند، مانند فایل wp-config.php.
شما می توانید این کار را با اضافه کردن کد زیر انجام دهید، که اگر هر کسی تلاش کند فایل را مشاهده کند، یک خطای ۴۰۴ ایجاد می شود:
Order Allow,Deny Deny from All
در مواردی که داده های حساس باید پنهان شوند، باید دسترسی به آن دایرکتوری را محدود کنید. از آنجاییکه بسیاری از سایتهای وردپرس از یک ساختار پوشه مشابه استفاده میکنند، میتواند آسیب پذیر باشد. اگر خط زیر را اضافه کنید، عملکرد پیش فرض دایرکتوری را غیرفعال می کند:
Options -Indexes
این کار کاربران و روبات ها را از مشاهده ساختار پوشه منع می کند. اگر کسی در تلاش برای دسترسی به آن باشد، به جای آن صفحه خطای ۴۰۳ نمایش داده می شود.
#2 ریدایرکت کردن مسیر مطالب قدیمی به مطالب جدید
ایجاد تغییرات ریدایرکت شما را قادر می سازد تا به طور خودکار کاربران را به یک صفحه خاص ارسال کنید. این می تواند بسیار مفید و کاربردی باشد یعنی اگر یک صفحه منتقل شده یا حذف شده باشد شما می توانید دسترسی کاربرانی که به آن صفحه را در جای دیگری انجام دهید . شما می توانید این کار را با یک افزونه Redirection انجام دهید، اما همچنین می توانید با ویرایش فایل .htaccess این کار را انجام دهید.
برای ایجاد تغییر مسیر، از کد زیر استفاده کنید:
Redirect /oldfile.html http://www.example.com/newfile.html
شما احتمالا می توانید ببینید که در کد چه کاری انجام می شود. قسمت اول مسیر به فایل قدیمی است، در حالی که بخش دوم URL است که می خواهید بازدیدکنندگان به آن هدایت شوند.
#3 ریدایرکت کردن خودکار http به https
اگر یک گواهینامه SSL را به دامنه خود اضافه کرده اید، حتما لازم است که کد زیر رو به فایل .htaccess اضافه کنید و این کد کاملا تست شده است و میتوانید براحتی از آن استفاده کنید.
شما می توانید آن را با اضافه کردن کد زیر انجام دهید:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
سایت شما اکنون به طور خودکار هر گونه درخواست HTTP را ریدایرکت می کند و آنها را به جای استفاده از HTTPS ریدایرکت می کند. به عنوان مثال، اگر یک کاربر سعی در دسترسی به http://www.example.com داشته باشد، به طور خودکار به https://www.example.com هدایت خواهد شد.
#4 تغییر تنظیمات کش
کش مرورگر یک فضایی است که در آن برخی از فایل های وب سایت به طور موقت در یک دستگاه موبایل یا سیستم بازدید کننده ذخیره می شوند تا صفحات را برای بارگذاری سریع تر ذخیره کنند. با استفاده از .htaccess، می توانید مقدار زمانی که فایل ها در حافظه کش مرورگر ذخیره می شود را تغییر دهید تا زمانی که با نسخه های جدید به روز شوند.
در مقاله کدهای ضروری .htaccess برای کاربران وردپرس چند راه مختلف برای انجام این کار وجود دارد، اما برای مثال، از یک تابع به نام mod_headers استفاده می کنیم. کد زیر حداکثر زمان ذخیره سازی برای همه jpg، jpeg، png و gif قایل تغییر است:
<filesMatch "\\.(jpg|jpeg|png|gif)$"> Header set Cache-Control "max-age=2592000, public"
ما حداکثر زمان را تا ۲۵۹۲۰۰۰ ثانیه تنظیم کرده ایم که که معادل ۳۰ روز است. شما می توانید این مقدار را اگر می خواهید تغییر دهید، و همچنین پسوند های فایل که تحت تأثیر قرار خواهند گرفت.
#5 جلوگیری از حملات اسکریپت اینجکشن (توصیه میشود)
حملات اسکریپت اینجکشن (یا «تزریق کد») تلاش میکند که اختلال در نحوه اجرای سایت ایجاد کند. برای مثال، کسی ممکن است اسکریپت را به یک فیلد متنی در سایت اضافه کند و سپس آن را ارسال کند، که ممکن است باعث شود سایت شما در واقع اسکریپت را اجرا کند.
شما می توانید کد زیر را برای محافظت در مقابل انواع خاصی از حملات اسکریپت اینجکشن اضافه کنید:
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
در حال حاضر سایت شما باید قادر به شناسایی و توقف تلاش های حملات اسکریپت اینجکشن باشد و مجرمان را به صفحه index.php هدایت کند.
با این حال، مهم است که توجه داشته باشید که این نمونه در برابر انواع حملات اسکریپت اینجکشن محافظت نخواهد شد. با این حال این کد خاص قطعا می تواند مفید باشد، شما نباید از آن به عنوان حفاظت تنها در برابر این نوع حمله استفاده کنید.
#6 جلوگیری از Hotlinking تصویر
Hotlinking تصویر یک مشکل رایج است و هنگامی اتفاق می افتد که تصاویر روی سرور شما در سایت دیگری نمایش داده شود. شما می توانید این را با اضافه کردن کد زیر به .htaccess متوقف کنید:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC] RewriteRule \.(png|gif|jpg|jpeg)$ https://www.example.com/wp-content/uploads/hotlink.gif [R,L]
در این کد باید پسوند .com را با دامنه خود جایگزین کنید، و این کد از بارگیری تصاویر در تمام سایت های دیگر جلوگیری خواهد کرد. در عوض، تصویری که در آخرین خط مشخص می کنید بارگذاری می شود. شما می توانید از این برای ارسال یک تصویر جایگزین به سایت هایی که سعی می کنند تصاویر را از سرور خود نمایش دهند، استفاده کنید.
#7 حذف پسوندهای فایل های سایت
با استفاده از .htaccess، می توانید، فایل های سایت و قالب را کنترل کنید که در کدهای ضروری .htaccess برای کاربران وردپرس میتوانید از این قابلیت استفاده کنید. برای مثال کد زیر پسوند فایلهای PHP را حذف می کند. شما می توانید این را با هر نوع فایل مورد استفاده قرار دهید، تا زمانی که تمام نمونه های php با پسوند مورد نظر شما جایگزین شوند.
RewriteEngine On RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\ HTTP/ RewriteRule ^(.*)index$ http://example.com/$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/$1 [L,R=301] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/$1 [L,R=301] RewriteRule ^([a-z]+)$ /$1.php [L]
این کد باعث می شود تمام فایل های پی اچ پی بارگذاری نشود و یا پسوند فایل های PHP در URL نمایش داده نشود. به عنوان مثال، فایل index.php به عنوان فقط فهرست نمایش داده می شود.
نتیجه گیری
فایل .htaccess دارای انعطاف پذیری زیادی برای کنترل رفتار وب سرور شما می باشد. شما همچنین می توانید از آن برای افزایش کارایی سایت خود استفاده کنید و کنترل دقیق تری بر روی افرادی که بتوانند به چه اطلاعاتی دسترسی پیدا کنند، استفاده کنید.
۲ دیدگاه دربارهٔ «کدهای ضروری .htaccess برای کاربران وردپرس (آپدیت شد);
سلام وقت بخیر
من می خواستم یه آدرس قدیم در سایت رو به یه آدرس جدید تو فایل htaccess ریدایرکت کنم.
این پست آموزشی شما رو هم دیدم. و جاهای دیگه
این کدها رو امتحان کردم
Redirect 301 /product-tag/%D8%B9%D8%B3%D9%84-%D8%A2%D9%82%D8%A7-%D9%85%D8%B5%D8%B7%D9%81%DB%8C/ /product-category/%d8%b9%d8%b3%d9%84/?filter_farmer=mostafa
RewriteRule https://example.com/product-tag/%D8%B9%D8%B3%D9%84-%D8%A2%D9%82%D8%A7-%D9%85%D8%B5%D8%B7%D9%81%DB%8C/ https://example.com/product-category/%d8%b9%d8%b3%d9%84/?filter_farmer=mostafa [R=301,L]
اما کار نمیکنه
حتی [L] رو هم جابجا کردم اما نشد.
مشکل کجاست یا راهنمایی دارین ؟
ممنون
سلام دوست عزیز
کد ها رو درست زدید ولی به احتمالات زیادی کد ها کار نمیکنه، توصیه من این هست که از افزونه های ریدایرکت همانند Redirection استفاده کنید.