فایل htaccess. یک فایل با محیط متنی است که امکانات بالایی را با کارکرد ساده برای شما فراهم خواهد کرد. از جمله قابلیتهای این فایل میتوان به پیکربندی پوشههای مختلف در بعضی از وب سرورها از جمله آپاچی اشاره کرد که توسط آن بسیاری از کارهایی که نیاز به کد نویسی طولانی و صد البته پیشرفته دارند، تنها با نوشتن یک خط کد در این فایل ممکن میشود. فایل htaccess. وردپرس نیز این امکان را به شما خواهدداد که کارهایی مثل ریدایرکت کردن سایت،بستن دسترسی به پوشهها و بسیاری موارد دیگر مثل بستن آیپی برای دسترسی به سایت را مدیریت کنید که در این مقاله قصد دارم به آموزش کامل کار با htaccess. وردپرس بپردازم
در این مقاله دستورات پر کاربرد و مهمی که در این فایل قابل استفاده هستند معرفی میشود تا به کمک آن بتوانید سایت وردپرس خود را با استفاده از دستورات کاربردی htaccess بهینهتر کنید.
آموزش کامل کار با htaccess. وردپرس
پیش از هر چیزی بهتر است که با نحوه دسترسی به این فایل آشنا شوید. این فایل همانطور که از نقطه ابتدایی آن مشخص است جزو فایل های مخفی به حساب میآید که در برخی کنترل پنل های هاست مثل سی پنل به صورت پیش فرض قابل مشاهده نیست. برای دسترسی به این فایل پس از اینکه وارد هاست خود شدید روی گزینه File Manager کلیک کنید تا به صفحه مدیریت فایلها در هاست هدایت شوید. سپس به مسیر public_html که دایرکتوری اصلی هاست است رجوع کنید. در اینجا باید به دنبال فایلی با نام htaccess. بگردید و به کمک ابزار EDIT که در اختیار دارید آن را ویرایش کنید.
در صورتی که این فایل را مشاهده نمیکنید مشابه تصویر فوق روی گزینه Settings کلیک کرده و طبق تصویر زیر تیک گزینه show hidden files را فعال کرده و روی دکمه save کلیک کنید.
جلوگیری از سرقت فایلهای درون هاست
هنگامی که یک پوشه در سایت میسازید در برخی هاستها ممکن است با رفتن به آدرس پوشه مورد نظر فایلها را به صورت مستقیم مشاهده کنید. برای رفع این مشکل میتوانید با قرار دادن کد زیر در فایل htaccess. دسترسی به پوشهها را ببندید.
Options All -Indexes
ایجاد محدودیت در دسترسی به سایت
در صورتی که قصد دارید دسترسی یک سری آیپی به سایت را ببندید میتوانید بدون اینکه نیاز به نصب افزونه خاصی داشته باشید رنج آیپی را به کمک این فایل مشخص کنید تا قادر به مشاهده سایت نباشند.
deny from 1.2.3.4 allow from all
در کد بالا به جای 1.2.3.4 کد آیپی یا رنج آیپی دلخواه خود را وارد کنید. دستور deny که برای این آی پی در نظر گرفته میشود به معنی عدم دسترسی است که در خط دوم مشخص کردهاید دسترسی به سایر آیپی ها فراهم باشد. گاهی ممکن است که بخواهید دسترسی به مسیر خاصی را صرفا برای یک ip فراهم کنید. به عنوان مثال اگر آیپی اینترنت شما استاتیک است میتوانید دسترسی به صفحه ورود وردپرس را با ساخت یک فایل htaccess. در پوشه wp-admin محدود به آی پی خود کنید. برای این منظور کافی است مشابه نمونه زیر با استفاده از دستور allow دسترسی به مسیر دلخواه را برای آیپی دلخواه خود فراهم کنید.
deny from all allow from 1.2.3.4
دستوری که در خط اول قرار دارد به معنی دسترسی ندادن به سایر آیپی ها میباشد.
ریدایرکت سایت با www یا بدون www
// در صورت استفاده از www RewriteEngine On RewriteCond %{HTTP_HOST} !^www. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] // در صورت عدم استفاده از www RewriteEngine On RewriteCond %{HTTP_HOST} !^shahrwp.com$ [NC] RewriteRule ^(.*)$ https://shahrwp.com/$1 [R=301,L]
در صورتی که ساختار سایت خود را روی یکی از حالتهای www یا بدون www مشخص کردهاید با استفاده از htaccess. میتوانید وضعیت ریدایرکت را به حالت انتخابی مشخص کنید. به عنوان مثالد ر صورت استفاده از www لازم است که آدرس بدون www را به آن ریدایرکت کنید. برای این منظور کافی است بسته به وضعیت سایت یکی از کدهای زیر را استفاده کنید.
محدود کردن دسترسی به فایل
گاهی اوقات ممکن است فایلهای مهمی مثل wp-config.php یا XML-rpc را بخواهید که محدود کرده و امنیت آن را افزایش دهید. برای این منظور کافی است مشابه نمونه زیر کد را در این فایل قرار دهید تا دسترسی به آن محدود شود.
<Files xmlrpc.php> order allow,deny Deny from all </Files>
همانطور که در خط اول میبینید کافی است نام فایل را با بک فاصله پس از files وارد کرده و از آن استفاده کنید.
ریدایرکت سایت هنگام استفاده از SSL
با نصب SSL در وردپرس لازم است که آدرسهای سایت را که پیش از این در حالت http یود به حالت 301 ریدایرکت کنید. این کار باعث میشود تا آدرسهای سایت که پیش از این به صورت http بود به https تغییر مسیر داده و در رتبه بندی گوگل نیز با انتقال اعتبار به ساختار جدید سئو صفحات خود را از دست ندهید. برای این کار کافی است کد زیر را در فایل htaccess. خود قرار دهید.
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://shahrwp.com/$1 [R=301,L]
همانطور که در تصویر میبینید به جای دامنه shahrwp.com دامنه خود را وارد کنید. همچنین در صورتی که از www در سایت استفاده میکنید باید از کد زیر به جای کد بالا استفاده کنید.
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.shahrwp.com/$1 [R=301,L]
استفاده از قابلیت کش وردپرس
در صورتی که به دنبال افزایش سرعت سایت هستید، میتوانید بدون نیاز به استفاده از افزونههای مختلف و پیچیده با استفاده از فایل 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>
همانطور که در کدهای بالا میبینید قابلیت کش کردن سایت به صورت سالانه و ماهانه برای هر فرمت فایل مشخص شده است که به انتخاب خود میتوانید مدت زمان آنها را تغییر داده و شخصی سازی کنید.