دستورات مهم htaccess برای سایتهای وردپرسی
فایل htaccess. در وردپرس که اغلب بهعنوان “htaccess wp” شناخته میشود، یک فایل پیکربندی حیاتی است که نقش مهمی در مدیریت رفتار سایت وردپرس دارد. این آموزش به اهمیت فایل htaccess. مشکلات رایج و تنظیمات پیشرفته این فایل مرموز و حیاتی خواهیم پرداخت.
فایل htaccess. چیست؟
به طول خلاصه فایل .htaccess (Hypertext Access) یک فایل پیکربندی است که توسط وبسرور Apache استفاده میشود. در وردپرس این فایل عمدتاً برای مدیریت پیوندهای یکتا به کار میرود اما همچنین قابلیتهای متنوعی مانند تغییر مسیر URL، افزایش امنیت و بهینهسازی عملکرد را ارائه میدهد. آشنایی و مدیریت صحیح فایل .htaccess میتواند عملکرد و امنیت سایت شما را بهطور چشمگیری بهبود بخشد.
ما در مقاله نحوه یافتن فایل htaccess. روش های دستیابی و انجام تغییرات در این فایل را به صورت کامل شرح داده ایم، میتوانید از این آموزش نیز برای پیدا کردم محل ذخیره این فایل استفاده نمایید.
مشکلات رایج در فایل htaccess. وردپرس
Internal Server Error (خطای داخلی سرور)
یکی از رایجترین مشکلات مرتبط با فایل .htaccess. در وردپرس، خطای داخلی سرور (Internal Server Error) است. این خطا معمولاً به دلیل خراب شدن فایل htaccess. یا تنظیمات نادرست سرور ایجاد میشود.
روش های حل خطای Internal Server Error
بکاپ گیری و حذف فایل htaccess. : ابتدا فایل htaccess. را در کامییوتر خود دانلود کنید، پس آن را در هاست حذف کنید و سپس صفحه اول را بررسی کنید اگر صفحه اول لود میشد یعنی مشکل از همین فایل بوده است اما کار تمام نیست و باید بقیه راحل را نیز که در پایین عرض میکنیم انجام دهید، اما اگر حل نشد باید چه کرد؟
غیرفعال سازی تمامی پلاگین ها : ممکن است برخی از پلاگین های شما کد های خاصی در فایل htaccess. سایت شما وارد کنند که نیاز است تمامی پلاگین های خود را غیر فعال کنید و مجدد صفحه اصلی سایت خود را بررسی کنید، اگر خطای Internal Server Error نمایش داده نشد یعنی مشکل حل شده حالا باید پلاگین خراب یا پیدا کنید که توصیه میکنیم آموزش کامل حل خطای 500 در وردپرس را بررسی کنید.
خطای 403 Forbidden Error
خطای 403 Forbidden زمانی رخ میدهد که دسترسی به صفحات یا دایرکتوریهای خاص به دلیل محدودیتهای دسترسی سرور مسدود شده باشد. این مشکل اغلب به دلیل تنظیمات نادرست مجوز فایل یا خراب شدن فایل .htaccess به وجود میآید.
روش حل خطای 403 Forbidden Error
بررسی سطح دسترسی یا Permissions فایل ها و پوشه ها : بررسی کنید که پوشه ها دارای دسترسی 0755 و فایل های دارای دسترسی 0644 باشند.
بالا بردن امنیت سایت با دستورات htaccess.
با استفاده صحیح و درست از دستورات htaccess. میتوانید امینت سایت خود را تضمین کنید، درواقع فایل htaccess. میتوانید اولین سد دفاعی در مقابل تهدیدات امنیتی سایت شما باشد.
جلوگیری از Directory Browsing یا مشاهده پوشه های وردپرس
برای جلوگیری از مرور دایرکتوریها توسط کاربران در سایت خط زیر را به فایل .htaccess اضافه کنید:
1 |
Options -Indexes |
محافظت در برابر تزریق اسکریپت
تزریق اسکریپت یک تکنیک رایج است که در آن حملهکننده یک قطعه کد مخرب را به کد وبسایت تزریق میکند تا دادهها را استخراج کرده یا کنترل وبسایت را به دست بگیرد.
اضافه کردن کد زیر به فایل .htaccess وردپرس میتواند از سایت شما در برابر چنین حملاتی محافظت کند:
1 2 3 4 5 6 |
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] |
جلوگیری از دسترسی به فایل wp-config.php
برای افزایش امنیت و جلوگیری از دسترسی به فایل wp-config.php، خط زیر را به فایل .htaccess اضافه کنید:
1 2 3 4 |
<files wp-config.php> order allow,deny deny from all </files> |
جلوگیری از دسترسی به خوده فایل htaccess.
برای جلوگیری از دسترسی کاربران غیرمجاز به خود فایل .htaccess، دستور زیر را به فایل .htaccess اضافه کنید:
1 2 3 4 |
<files .htaccess> order allow,deny deny from all </files> |
محدود کردن دسترسی به فایلهای XML-RPC
پروتکل XML-RPC برای اتصالات از راه دور استفاده میشود و میتواند به اهداف حملات دیداس تبدیل شود. برای غیرفعال کردن آن دستور زیر را وارد کنید :
1 2 3 4 |
<Files xmlrpc.php> order allow,deny deny from all </Files> |
محدود کردن دسترسی به پوشه wp-includes
این پوشه حاوی فایلهای اصلی وردپرس است که معمولاً نیازی به دسترسی کاربران ندارد.
1 2 3 4 5 6 7 8 9 |
<IfModule mod_rewrite.c> 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] </IfModule> |
غیرفعال سازی PHP در مسیرهای خاص
اگر پوشه هایی مانند upload شما دچار بد افزار شده باشند با این ترفند می توانید از عملکرد آنها جلوگیری کنید.
1 2 3 |
<Files *.php> deny from all </Files> |
محافظت از دیگر فایلهای مهم وردپرس
برای جلوگیری از دسترسی غیرمجاز به فایلهای اصلی وردپرس مانند readme.html، license.txt و wp-config-sample.php کد های زیر را وارد کنید
1 2 3 4 |
<FilesMatch "^(readme\.html|license\.txt|wp-config-sample\.php)"> Order allow,deny Deny from all </FilesMatch> |
محدود کردن دسترسی به wp-admin از IP مشخص
میتوانید با این دستور دسترسی به پنل مدیریت یا همان پیشخوان وردپرس را به یک یا چند IP خاص محدود کنید مثلا اگر از IP ثابت استفاده میکنید بهتر است IP خود را در کد زیر جایگذین کنید و سپس در فایل htaccess. وارد کنید.
1 2 3 4 5 |
<Files wp-login.php> order deny,allow deny from all allow from 192.168.1.1 </Files> |
بهجای 192.168.1.1
آدرس IP خود را وارد کنید.
فعال کردن محافظت در برابر hotlinking
این دستور مانع از این میشود که دیگران تصاویر سایت شما را بدون اجازه در سایتهای خود به نمایش بگذارند.
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F] |
بهجای yourdomain.com
نام دامنه خود را وارد کنید.
بهینه سازی سرعت به وسیله فایل htaccess.
پیکربندی صحیح فایل htaccess. میتوانید تاثیر بالایی در عملکرد سایت داشته باشد.
افزایش حجم مجاز آپلود در وردپرس (توصیه نمیشود)
روشهای مختلفی برای افزایش محدودیت حجم بارگذاری فایل در وردپرس وجود دارد. با این حال، برای کاربرانی که از هاست اشتراکی استفاده میکنند، برخی از این روشها کارساز نیستند، پیشنهاد می کنیم مقاله بالابردن محدودیت آپلود را بررسی کنید.
فعال سازی فشرده سازی به وسیله htaccess.
برای فعالسازی فشردهسازی Gzip و کاهش حجم فایلهای ارسالی از سرور که به بهبود سرعت بارگذاری سایت کمک میکند، خطوط زیر را به فایل .htaccess اضافه کنید
1 2 3 4 5 6 7 8 9 |
<IfModule mod_deflate.c> # فشردهسازی انواع فایلهای متنی و عمومی AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css AddOutputFilterByType DEFLATE application/javascript application/json application/xml application/xhtml+xml application/rss+xml AddOutputFilterByType DEFLATE image/svg+xml # فشردهسازی فونتها AddOutputFilterByType DEFLATE font/ttf font/otf font/x-woff </IfModule> |
از حافظه پنهان مرورگر استفاده کنید
برای فعالسازی کش مرورگر و ذخیرهسازی فایلها در کامپیوتر کاربران، میتوانید دستورات زیر را به فایل .htaccess اضافه کنید. این کار باعث کاهش حجم دادههای ارسالی و بهبود سرعت بارگذاری سایت میشود
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" </IfModule> |
پیکربندی پیشرفته htaccess.
برای کاربران پیشرفتهتر، فایل .htaccess میتواند برای پیادهسازی تغییر مسیرهای سفارشی، افزایش امنیت و بهینهسازی بیشتر عملکرد استفاده شود.
ریدایرکت کل دامنه
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^olddummydomain.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.olddummydomain.com [NC] RewriteRule ^(.*)$ https://newdummydomain.com/$1 [L,R=301,NC] |
ریدایرکت 301 دائمی آدرس ها در htaccess.
تغییر مسیر 301 به موتورهای جستجو میگوید که یک URL بهطور دائمی به مکان دیگری منتقل شده است. این تغییر مسیر محدود به URLها نیست؛ شما میتوانید یک پوشه، صفحه یا حتی یک وبسایت کامل را نیز هدایت کنید.
1 |
Redirect 301 /old-page.html http://www.example.com/new-page.html |
ریدایرکت 302 موقت آدرس ها در htaccess.
برخلاف 301، تغییر مسیر 302 به موتورهای جستجو میگوید که تغییر مسیر موقتی است. استفاده از تغییر مسیر 302 به شما کمک میکند تا جابهجایی نتایج جستجو (SERP) را کند کنید (یا حتی از آن جلوگیری کنید).
1 |
Redirect 302 /oldpage.html http://www.yourwebsite.com/newpage.html |
ریدایرکت از دامنه اصلی به ساب دایرکتوری
1 2 3 |
RewriteCond %{HTTP_HOST} ^example.com$ RewriteCond %{REQUEST_URI} !^/sub-directory-name/ RewriteRule (.*) /subdir/$1 |
آدرس سایت فقط با www
دستور زیر در فایل .htaccess وردپرس، تمامی بازدیدکنندگان وبسایت example.com را مجبور میکند تا از www.example.com استفاده کنند
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC] |
آدرس سایت فقط بدون www
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] |
اجبار لود سایت فقط با https
اگر روی سایت خود SSL فعال کرده باشید حتما نیاز است که سایت شما با https لود شود زیرا اگر با http هم سایت شما لود شود دچار مشکل سئو خواهید بود و حتی ممکن است برخی از المان های سایت به درستی لود نشوند برای حل این مشکل از دستور زیر باید استفاده کنید
1 2 3 |
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
جمع بندی
در مورد پیکربندی سرور، فایل .htaccess وردپرس یکی از مهمترین فایلها در سرور شماست. این فایل معمولاً برای پیکربندی سرور و تأمین امنیت بخشهای مختلف وبسایت استفاده میشود. اگر فکر میکنید که مورد استفاده مهمی از .htaccess را نادیده گرفتهایم لطفاً در زیر یک نظر بگذارید تا این لیست را بهروز کنیم.