
یکی از فایلهای مهم و حیاتی که بسیاری از امور در آن انجام میشود، فایل htaccess است. در واقع این فایل تا حدی جنبه امنیتی داشته و به همین علت بسیاری از توسعه دهندگان آن را از نظر مخفی میدارند. این فایل میتواند تغییرات قابل توجهی در امنیت سایت شما، عملکرد ریدایرکت و برخی موارد دیگر ایجاد کند، بدون اینکه شما نیاز به بررسی خاصی داشته باشید. امروز میخواهیم آموزش htaccess در راستای افزودن کد برای برخی امور را با هم داشته باشیم.
آموزش ویرایش فایل htaccess در هاست و اضافه کردن کد
فایل htaccess حاوی دستورالعملهایی است که به سرور میگوید در سناریوهای خاص چگونه رفتار کند و مستقیماً بر عملکرد وبسایت شما تأثیر میگذارد. ریدایرکتها و بازنویسی URLها دو دستورالعمل بسیار رایج در فایل htaccess هستند و بسیاری از اسکریپتها مانند وردپرس، دروپال، جوملا و مگنتو، دستورالعملهایی را به htaccess اضافه میکنند تا این اسکریپتها بتوانند کار کنند.
ممکن است در مقطعی به دلایل مختلف نیاز به ویرایش فایل htaccess داشته باشید.
در روش اول ما کار خود را با کمک یک نرم افزار اتصال به هاست مانند Filezilla انجام میدهیم. برخی از افراد دسترسی مستقیم به هاست خود ندارند و فقط اطلاعات کلاینت FTP را در اختیار دارند تا از طریق نرمافزار بتوانند کار خود را انجام دهند. پس اولین روش ما برای ویرایش فایل htaccess در اختیار داشتن اطلاعات FTP و متصل شدن به هاست از طریق Filezilla است. برای این منظور مسیر زیر را طی کنید:
- به کلاینت FTP خود وارد شوید.
- به پوشه «public_html» بروید و فایل htaccess را پیدا کنید.
- کلیک راست کرده و روی گزینه «view/edit» کلیک کنید تا آن را در ویرایشگر متن دلخواه خود باز کنید.
- تغییرات لازم را انجام داده و فایل را ذخیره کنید.
روش دیگر ویرایش فایل htaccess وردپرس، ایجاد یک کپی در سیستم کامپیوتر است. پس از اتمام کار، نسخه ادیت شده را با استفاده از FTP یا مدیر فایل جایگزین کنید.
حتما بخوانید: آموزش نصب ssl در سی پنل
ویرایش فایل htaccess در هاست سی پنل
روش دیگر برای ویرایش فایل htaccess کمک گرفتن از سیپنل است. اگر امکان دسترسی به پنل هاست خود را داشته باشید میتوانید بطور مستقیم وارد آن شده و عملیات موردنظر را انجام دهید. برای این منظور عملیات زیر را انجام دهید:
- دسترسی به پنل کنترل: وارد پنل کنترل حساب میزبانی خود شوید.
- File manager را باز کنید: در پنل کنترل، ابزار «File manager» را پیدا کرده و باز کنید.
- به public_html بروید: در منوی ناوبری سمت چپ، روی پوشه «public_html» که پوشه اصلی وبسایت شماست کلیک کنید.
- پوشه وردپرس را پیدا کنید: در پوشه «public_html»، پوشه «wordpress» را که محل نصب وردپرس شماست، پیدا کرده و باز کنید.
- فایل htaccess را پیدا کنید: در داخل پوشه «wordpress»، فایل htaccess را پیدا خواهید کرد. برای شروع فرآیند ویرایش، روی آن کلیک راست کنید.
- ویرایش فایل htaccess: گزینه ویرایش فایل htaccess را انتخاب کنید. یک ویرایشگر متن در مرورگر شما باز خواهد شد.
- افزودن کد: هر کدی را که میخواهید پیادهسازی کنید، وارد کنید و مطمئن شوید که آن را قبل از خطی که «# BEGIN WordPress» نوشته شده است، قرار دهید.
با دنبال کردن این مراحل، میتوانید فایل htaccess سایت وردپرس خود را با استفاده از cPanel به طور مؤثر تغییر دهید.
آموزش ریدایرکت با htaccess
شما میتوانید از فایل htaccess. در وردپرس برای کنترل ریدایرکتهای وبسایت استفاده کنید. در این آموزش htaccess برخی از قوانین پرکاربرد که به شما در تنظیم و کنترل ریدایرکتها در وبسایتهای وردپرس کمک میکنند، آورده شده است:
ریدایرکت ۳۰۱ (دائمی)
ریدایرکت ۳۰۱ به موتورهای جستجو میگوید که یک URL به طور دائم به مکان دیگری منتقل شده است. این فقط به URLها محدود نمیشود؛ شما میتوانید یک پوشه، صفحه یا حتی یک وبسایت کامل را نیز ریدایرکت کنید. قطعه کد زیر oldpage.html را به newpage.html ریدایرکت میکند:
redirect301 /oldpage.html https://www.yourwebsite.com/newpage.html
ریدایرکت ۳۰۲ (موقتی)
برخلاف ریدایرکت ۳۰۱، ریدایرکت ۳۰۲ به موتورهای جستجو میگوید که این ریدایرکت موقتی است. استفاده از ریدایرکت ۳۰۲ به شما کمک میکند تا تغییرات ناگهانی صفحات نتایج موتور جستجو (SERP) را کُند کنید (یا حتی از آن جلوگیری کنید). خط زیر را به فایل htaccess. اضافه کنید تا امکان ریدایرکت موقت فراهم شود:
Redirect 302 /oldpage.html http://www.yourwebsite.com/newpage.html
آدرس اینترنتی را به استفاده از www مجبور کنید
دستور htaccess زیر در وردپرس، تمام بازدیدکنندگان example.com را مجبور میکند که از www.example.com استفاده کنند:
<pre>RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]</pre>
[php]
<h4>اجبار به استفاده از آدرس اینترنتی بدون www</h4>
برعکس دستور بالا، دستور htaccess وردپرس زیر، همه بازدیدکنندگان www.example.com را مجبور به استفاده از example.com میکند:
[php]
<pre>RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]</pre>
حتما بخوانید: آموزش افزایش حافظه php در وردپرس
HTTPS را اجباری کنید
قانون زیر در فایل htaccess وردپرس، همه بازدیدکنندگان شما را مجبور میکند که برای همه URLها از HTTPS به جای HTTP استفاده کنند. این یک مسئله امنیتی عالی برای مخاطبین است.
<pre>RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</pre>
تغییر مسیر htaccess وردپرس با دایرکتوری
دستور زیر آدرس روت دامنه را به زیرشاخه مورد نظر شما ریدایرکت میکند.
<pre>RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/sub-directory-name/
RewriteRule (.*) /subdir/$1</pre>
تغییر مسیر یک URL
اگر دو دامنه به یک وبسایت خدمات ارائه دهند، قانون htaccess که در زیر ذکر شده است، یک دامنه را به دامنه دیگر هدایت میکند.
Redirect 301 / http://www.mynewwebsite.com/
تغییر مسیر یک پست یا صفحه
اگر میخواهید یک پست یا صفحه را ریدایرکت کنید، میتوانید خط کد زیر را برای هر پست یا صفحهای که میخواهید ریدایرکت کنید، اضافه کنید:
redirect 301 /old-url-slug https://yourdomain.com/new-url-slug
فرض کنید میخواهید «https://www.cloudways.com/blog/core-web-vitals/» را به «https://www.cloudways.com/blog/core-web-vitals-seo/» ریدایرکت کنید. سپس، خط کد زیر را در فایل htaccess اضافه میکنید:
redirect 301 /core-web-vitals/ https://www.cloudways.com/blog/core-web-vitals-seo/
آدرس اینترنتی قدیمی اکنون هر کسی را که روی یک لینک داخلی یا خارجی کلیک کند، به آدرس اینترنتی جدید هدایت میکند.
کل سایت خود را ریدایرکت کنید
اگر میخواهید کل وبسایت خود را به یک دامنه جدید ریدایرکت کنید، میتوانید قطعه کد زیر را به فایل htaccess. در وردپرس اضافه کنید:
<pre>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]</pre>
متن ساختگی در کد بالا را با نام دامنه قدیمی و جدید خود جایگزین کنید.
برای درک بهتر: تصور کنید وبسایتی با نام «www.oldwebsite.com/about» دارید. با تغییراتی که ایجاد کردهایم، هر کسی که به آن لینک مراجعه کند، به صفحه جدید «www.newwebsite.com/about» منتقل میشود.
حتما بخوانید: فیگما چیست و چه کاربردی در طراحی سایت دارد؟
htaccess برای افزایش امنیت
از آنجایی که وردپرس یک پلتفرم اوپنسورس است، سایتهای آن همچنان در برابر نقضهای امنیتی آسیبپذیر هستند. بنابراین، کاربران باید اقدامات پیشگیرانهای مانند انتخاب یک میزبان وب معتبر مانند Cloudways که امنیت وبسایت آنها را در اولویت قرار میدهد و در برابر ترافیک مخرب و حملات DDoS محافظت میشود، انجام دهند.
Cloudways Flexible و Autonomous، هر دو مجهز به Cloudflare ، SafeUpdates و اسکنر آسیبپذیری هستند که حضور آنلاین ایمن را تضمین میکنند.
همچنین میتوانید دایرکتوریها و فایلهای وردپرس خود را از طریق فایل htaccess ایمن کنید. برای ایمنسازی وبسایتهای وردپرس خود، قوانین زیر را دنبال کنید.
از فایل htaccess محافظت کنید
فایل htaccess. میتواند به طور بالقوه کل وبسایت را کنترل کند. بنابراین شما باید از htaccess خود در برابر کاربران غیرمجاز نیز محافظت کنید. با کپی کردن/پیست کردن قطعه کد زیر در فایل htaccess، دسترسی به فایل htaccess را محدود کنید:
<pre><files ~ "^.*.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files></pre>
محدود کردن دسترسی به پنل مدیریت وردپرس
اگر کسی به پنل مدیریت وردپرس شما دسترسی پیدا کند، میتواند هر کاری که میخواهد انجام دهد و حتی کل وبسایت شما را از کار بیندازد. برای جلوگیری از این امر، باید دسترسی به پنل مدیریت وردپرس را فقط به IP(های) خاصی محدود کنید. یک فایل htaccess دیگر ایجاد کنید و قطعه کد زیر را در آن قرار دهید.
<pre># Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from xx.xx.xx.xx
#whitelist Farhan’s IP Address
</Limit></pre>
آن را در پوشهی «www.yourwebsite.com/wp-admin/» آپلود کنید.
حال اگر کاربری بخواهد با یک آدرس IP تایید نشده به سایت شما وارد شود، خطای زیر را مشاهده خواهد کرد:
توجه: فراموش نکنید که عبارت «xx.xx.xx.xx» را با آدرس IP مجاز خود جایگزین کنید.
شما میتوانید به راحتی با مراجعه به «What Is My IP» آدرس IP خود را دریافت کنید. اگر بیش از یک مدیر دارید، میتوانید با استفاده از روش زیر چندین IP اضافه کنید:
34.56.78 98.76.54.32 19.82.73.64
مسدود کردن ip در فایل htaccess
این قانون دسترسی به سایت شما را برای عوامل کاربری خاص (مثلاً رباتهای مخرب، اسکریپرها یا خزندهها) مسدود میکند.
RewriteCond %{HTTP_USER_AGENT} ^BadBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^AnotherBadBot [NC]
RewriteRule ^.* - [F,L]
غیرفعال کردن XML-RPC
XML-RPC قابلیتی است که امکان اتصال از راه دور به سایت وردپرس شما را فراهم میکند. با این حال، اغلب توسط مهاجمان برای موارد زیر مورد سوءاستفاده قرار میگیرد:
- انجام حملات جستجوی فراگیر (brute-force) برای ورود به سیستم.
- اجرای حملات DDoS (Distributed Denial of Service).
- استفاده از آسیبپذیریها در افزونهها یا قالبها.
- این قانون دسترسی به فایل xmlrpc.php را در وردپرس غیرفعال میکند.
<pre>&lt;Files xmlrpc.php&gt;
Order Deny,Allow
Deny from all
&lt;/Files&gt;</pre>
فایلهای مهم را ایمن کنید
شما میتوانید با استفاده از قطعه کد زیر، از فایل .htaccess در وردپرس برای محافظت از فایلهای مهم مانند functions.php، wp-config.php و php.ini استفاده کنید:
<pre>&lt;FilesMatch "wp-config.php|php.ini|functions.php"&gt;
Order deny,allow
Deny from all
&lt;/FilesMatch&gt;</pre>
از فایل wp-config.php محافظت کنید
در وردپرس، فایل wp-config.php فایلی است که اطلاعات هاست، پایگاه داده و سایر اطلاعات مهم در آن ذخیره میشود. بنابراین، شما باید از این فایل در برابر هرگونه دسترسی غیرمجاز محافظت کنید. خطوط زیر را در فایل htaccess. کپی و جایگذاری کنید:
<pre>&lt;files wp-config.php&gt;
order allow,deny
deny from all
&lt;/files&gt;</pre>
محافظت از پوشه wp-content
پوشه wp-content شامل تمام قالبها، افزونهها، رسانهها و فایلهای ذخیرهشده مهم است و همین امر آن را به هدف اصلی هکرها و اسپمرها تبدیل میکند. برای محافظت از این پوشه در برابر دسترسی غیرمجاز، یک فایل .htaccess جداگانه در پوشه wp-content ایجاد کنید. سپس، قطعه کد زیر را در فایل کپی و جایگذاری کنید:
<pre>Order deny,allow
Deny from all
&lt;Files ~ ".(xml|css|jpe?g|png|gif|js)$"&gt;
Allow from all
&lt;/Files&gt;</pre>
با قانون فوق، کاربران فقط میتوانند فایلهایی با پسوندهای مجاز (XML، CSS، JPG، JPEG، PNG، GIF و JavaScript) را آپلود کنند و سایر انواع فایلها مجاز نخواهند بود.
محافظت از فایلهای موجود در Include
برخی از بخشهای نصب وردپرس هرگز نباید توسط یک کاربر معمولی قابل دسترسی باشند. بهترین روش، مسدود کردن تمام دسترسیها به این فایلها است و میتوانید با اضافه کردن قطعه کد به فایل .htaccess، محدودیتهای دسترسی را تنظیم کنید.
<pre>&lt;IfModule mod_rewrite.c&gt;
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]
&lt;/IfModule&gt;</pre>
غیرفعال کردن اجرای PHP
محدود کردن اجرای کد PHP برای همه یا دایرکتوریهای انتخابشده از سایت شما، یک اقدام امنیتی حیاتی برای وبسایت وردپرس است. یک فایل htaccess. را در پوشهای که نمیخواهید اسکریپتهای PHP در آن اجرا شوند، ایجاد کنید و قطعه کد زیر را به آن اضافه کنید.
<pre>&lt;Files *.php&gt;
deny from all
&lt;/Files&gt;</pre>
برخی از پوشههای وردپرس، مانند wp-includes و /wp-content/uploads/، به طور پیشفرض قابل نوشتن هستند. این نوع مجوز به کاربران اجازه میدهد تا رسانهها یا انواع مختلف فایل را آپلود کنند. همیشه توصیه میشود که اجرای PHP را در این دایرکتوریها غیرفعال کنید.
جمع بندی
فایل htaccess در وردپرس یک فایل پیکربندی است که توسط سرورهای وب آپاچی برای کنترل تنظیمات مختلف بر اساس هر دایرکتوری استفاده میشود. وردپرس از این فایل برای مدیریت نحوه مدیریت URLها، به ویژه برای فعال کردن پیوندهای یکتا زیبا، که URLهای شما را تمیزتر و سئوپسندتر میکند، استفاده میکند. همچنین میتواند برای افزایش امنیت، تغییر مسیر ترافیک و بهینهسازی عملکرد سرور مورد استفاده قرار گیرد. در این مقاله سعی کردیم عملکردهای مهمی را از این فایل برایتان شرح دهیم تا بتوانید برخی موارد را برای خودتان درنظر بگیرید.




