فایل .htaccess، یک فایل برای مدیریت پیکربندی های محیط میزبانی سایت و درخواست های وبسایت WordPress در آن میباشد. فایل .htaccess مسئولیت کنترل ویژگی های مختلفی در سمت سرور، مانند: تغییر مسیر url یا url redirection، امضاهای سمت سرور، کش کردن فایل ها، محافظت از پسورد و شخصی سازی صفحات خطا را به عهده دارد.
دانستن اینکه فایل .htaccess چگونه کار میکند، به شما کمک میکند که بخش هایی از وبسایت خود را کنترل کنید و همچنین، بتوانید از طریق آن، وبسایت خود را بهینه سازی کنید.
در این آموزش، ساخت، ویرایش و پیدا کردن فایل .htaccess در WordPress را میآموزیم.
فایل .htaccess چیست؟
فایل .htaccess (مخفف hypertext access)، یک فایل پیکربندی استاندارد میباشد که در وب سرور ها(Web Servers) و معمولا فضاهای میزبانی که از وب سرور Apache استفاده میکنند استفاده میشود. همچنین این فایل در سایت های وردپرس(WordPress) نیز نقش مهمی دارد. فایل .htaccess یک فایل متنی است که نقش های مهمی در پیکربندی های اعمال شده در مسیر root وبسایت ها دارد.
ویرایش فایل .htaccess معمولا برای اعمال یا ابطال دسترسی به منابع وبسایت انجام میشود. علامت نقطه(.) در اول نام فایل به این معناست که این فایل یک فایل مخفی و یا همان hidden است (این فایل ها به عنوان dotfile نیز شناخته میشوند). مشاهده این فایل ها از طریق فعالسازی گزینه مربوط به آن در file manager هاست شما ممکن خواهد بود.
فایل .htaccess چه کاربردی دارد؟
کاربرد اصلی فایل .htaccess در وردپرس(WordPress)، مدیریت پیوندهای یکتا یا همان permalinks در میباشد. هرچند که برخی دیگر از حالت های پیکربندی در این فایل، قابل اعمال است که باعث تغییر و بهینه سازی برخی ویژگی های وبسایت میشود.
برخی از استفاده های فایل .htaccess شامل این موارد میباشد:
- تغییر مسیر و بازنویسی URL های وبسایت (Redirecting and Rewriting URL’s): وجود این ویژگی که بتوانیم از طریق فایل .htaccess مسیر های URL وبسایت خود را تغییر دهیم، به ما کمک میکند تا درخواست های ارسال شده به سمت یک URL خاص را به صفحه دلخواهمان در سایت ارجاع دهیم. همچنین این ویژگی به بهبود SEO وبسایت ما کمک میکند.
- جلوگیری از سرقت پهنای باند یا Image Hotlink: ایمن سازی منابع وبسایت، از حملات سرقت پهنای باند جلوگیری میکند. این ویژگی باعث میشود تا دیگران نتوانند تصاویر و دیگر منابع موجود در وبسایت را به وبسایت خود لینکدهی کنند و از آن طریق اقدام به سرقت پهنای باند وبسایت شما کنند. همچنین این ویژگی باعث کاهش میزان درگیری در ترافیک وبسایت شما میشود.
- مدیریت خطاهای سرور: ساخت صفحه های مربوط به یک خطا به صورت شخصی سازی شده و نمایش پیام هایی خاص در موقعیت هایی مانند بروز یک خطا، از کارهایی است که میتوان از طریق فایل .htaccess انجام داد. این کار باعث میشود تا در زمان بروز خطا، دلیل آن را بدون مشکل پیدا کرد و برطرف خطاهای سرور به آسانی انجام شود.
- مسدودسازی و آزادسازی خطاهای سرور: با کمک این ویژگی در فایل .htaccess میتوانیم دسترسی آدرس IP های مختلف به سرور را مدیریت کنیم و از این طریق، قوانین مربوط به این آدرس ها را تعریف کنیم. این کار میتواند در بهبود امنیت وبسایت ما، کارایی فراوانی داشته باشد.
- اعمال پسورد در صفحات دلخواه: در فایل .htaccess، میتوانیم با اعمال پسورد به برخی صفحات، یعنی زمانی که وبسایت در هنگام ورود کاربر از آن درخواست پسورد بکند، امنیت برخی از صفحات و دایرکتوری های وبسایت را افزایش دهیم و از ورود کاربران ناخواسته، از آنها محافظت کنیم.
پس با استفاده از فایل .htaccess، کاربران مدیر وردپرس(WordPress)، میتوانند وبسایت خود را ویرایش کنند و در آن ایمنسازی انجام دهند.
چطور فایل .htaccess مربوط به WordPress را پیدا کنیم
فایل .htaccess، در مسیر ریشه یا root فضایی قرار دارد که نصب وردپرس(WordPress) در آن انجام شده است. توجه کنید که منظور ما، دایرکتوری root در هاست یا سرور اصلی که وبسایت ما در آن میزبانی شده است نمیباشد. دایرکتوری root مربوط به وردپرس(WordPress)، همان پوشه ای است که فایل های نصبی وردپرس در آن قرار دارد. مانند public_html.
برای مشاهده این فایل نیاز است تا تنظیمات مربوط به file manager هاست خود را تغییر دهید تا فایل .htaccess، که یک فایل مخفی میباشد را، به شما نمایش دهد.
در این بخش، پیدا کردن فایل .htaccess از طریق cPanel و همچنین، از طریق اتصال FTP را می آموزیم.
پیدا کردن فایل .htaccess در cPanel
- وارد پیشخوان cPanel هاست خود شوید.
- د بخش FILES، گزینه File Manager را انتخاب کنید.

- وارد پوشه ای را که در آن نصب وردپرس را انجام داده اید شوید (معمولا نصب وردپرس در پوشه public_html انجام میشود). در صورتی که فایل .htaccess را در آن مشاهده نکرده اید، به این معنی است که در حال حاضر فایل های مخفی در هاست نمایش داده نمیشوند.
- برای اینکه فایل های مخفی در هاست قابل نمایش شوند، گزینه Settings را انتخاب کنید.

- در پنجره باز شده، تیک Show Hidden Files را فعال کنید. سپس Save را انتخاب کنید تا تنظیمات ذخیره شود.

پیدا کردن فایل .htaccess در اتصال FTP به هاست
در اتصال های FTP به هاست خود از طریق ابزار هایی مانند FileZilla، به این صورت میتوانید فایل .htaccess خود را پیدا کنید.
- با استفاده از کلاینت FTP، به وبسایت وردپرس(WordPress) خود متصل شوید.
- وارد پوشه root مربوط به وبسایت خود شوید(معمولا این پوشه، public_html یا www میباشد).
- از طریق این مسیر در کلاینت FTP خود، گزینه مشاهده فایل های مخفی را فعال نمایید: گزینه Server را از تب بالایی انتخاب کنید و سپس Force showing hidden files را فعال کنید.

چطور فایل .htaccess را برای وردپرس ایجاد کنیم
در برخی از موارد، وردپرس(WordPress) فایل پیشفرض .htaccess را به صورت خودکار ایجاد نمیکند و یا ممکن است، فایل ایجاد شده باشد و سپس به دلایلی، حذف شده باشد. به این روش فایل .htaccess را ایجاد میکنیم.
- به پوشه محل نصب وردپرس(WordPress) در هاست خود بروید.
- گزینه File+ را از نوار بالایی انتخاب کنید.
- نام فایل .htaccess را وارد کنید و سپس، Create new file را انتخاب کنید.

- فایل را برای ویرایش باز کنید. در cPanel، با کلیک راست کردن بر روی فایل و انتخاب گزینه Edit، میتوانید این کار را انجام دهید.

- کد زیر را در فایل خود وارد کنید:
#BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#END WordPress
این کد، کانفیگ پیشفرض .htaccess است که وردپرس(WordPress) به صورت خودکار اقدام به ایجاد آن میکند. این کد، مدیریت پیوند های یکتا را انجام میدهد و URL ها تعریف میکند.
- فایل را ذخیره کرده و از آن خارج شوید.
چگونه فایل .htaccess را ویرایش کنیم
ویرایش فایل .htaccess این امکان را به ما میدهد تا پیکربندی های مربوط به سرور را شخصی سازی کنیم و همچنین قابلیت های مختلفی را در وبسایت وردپرسی خود پیاده سازی کنیم.
برای ویرایش فایل .htaccess در cPanel به این صورت عمل میکنیم.
- قبل از انجام تغییرات، بهتر است یک کپی از فایل اصلی را نگهداری کنید. با کلیک راست بر روی نام فایل .htaccess و انتخاب گزینه Download، میتوانید آن را بر روی سیستم خود دانلود کنید.

- سپس با کلیک راست بر روی نام فایل و انتخاب گزینه Edit، میتوانید فایل خود را ویرایش کنید.
پیکربندی های شایع در فایل .htaccess مربوط به وردپرس
قابلیت های مختلفی در اعمال تغییر به وبسایت وردپرس(WordPress)، در هنگام پیکربندی فایل .htaccess وجود دارد. در این بخش، برخی از پیکربندی های استاندارد که میتوانید برای بهبود امنیت و کارایی در وبسایت وردپرسی خود اعمال کنید وجود دارد.
ریدارکت ها
تغییر مسیر یا ریدایرکت کردن، جهت ترافیک ورودی و خروجی وبسایت را کنترل میکند. با این روش میتوانیم از این مطمئن شویم که کاربران بعد از بازکردن URL های خاص، به صفحات درستی در وبسایت میرسند.
- ریدایرکت 301. زمانی که پیوند های یکتا یا Permalinks در یک وبسایت تغییر میکند، با استفاده از ریدایرکت 301 میتوانیم مسیر ترافیک را به یک صفحه جدید تغییر دهیم. با استفاده از دستور زیر در .htaccess میتوانید این کار را انجام دهید. نیاز است بخش های مربوط را با مقادیر مربوط به وبسایت خود و فایل های آن تغییر دهید:
Redirect 301 /[old_permalink].html [website_URL]/[current_permalink].html
- ریدایرکت 302. برای تغییر مسیر ترافیک به یک صفحه دیگر به صورت موقت، از ریدایرکت 302 استفاده میکنیم. این روش معمولا برای مواقعی مانند تست کردن برخی ویژگی ها انجام میشود. با استفاده از کد زیر میتوانیم این کار را انجام دهیم:
Redirect 302 /[old_permalink].html [website_URL]/[current_permalink].html
- زیرشاخه یا Subdirectory. در این حالت، میتوانیم ترافیک ارسال شده به یک مسیر زیرشاخه(یک پوشه جدا از مسیر اصلی وبسایت) یا Subdirectory را، به یک زیرشاخه دیگر تغییر دهیم. این حالت از ریدایرکت، برای زمانی که میخواهیم محتوای وبسایت را ترکیب یا بازسازی کنیم کاربرد دارد:
Redirect /[subdirectory] [website_URL]/[new_subdirectory]
- یک دامنه دیگر. در برخی موارد نیاز است تا مسیر ترافیک را به یک دامنه دیگر و یا حتی به یک وبسایت دیگر تغییر دهیم. این حالت از ریدایرکت کردن، برای مواقعی مانند لینک های سیستم های همکاری در فروش یا affiliate marketing، دامنه های مختلف برای یک وبسایت، زمانی که دامنه اصلی سایت به نام جدید تغییر یافته است و انتقال دامنه کاربرد دارد:
Redirect / [new_website_URL]
تغییر مسیر دامنه با پیشوند www یا دامنه بدون www
تغییر مسیر یا پاک کردن پیشوند www در فایل .htaccess مربوط به وردپرس(WordPress)، یک ویژگی پیشفرض در این فایل میباشد. این مورد باعث بهبود SEO و ثبات برند وبسایت میشود. همچنین، پاک کردن پیشوند www باعث جلوگیری از مشکلات تکرار، به دلیل تفاوت URL ها میشود.
کد زیر را برای اعمال www به وبسایت، در فایل .htaccess استفاده کنید:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
همچنین، کد زیر را برای اعمال آدرس به بدون پیشوند www به وبسایت، در فایل .htaccess وارد کنید:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
در هر دوی مثال ها، فایل .htaccess، درخواست های ورودی را به آدرس های شامل www و بدون www ارجاع میدهد.
تغییر HTTP به HTTPS
میتوانید در فایل .htaccess ترافیک ورود به وبسایت بدون HTTP را، به دامنه وبسایت با HTTPS انتقال دهید. اعمال ترافیک ها به HTTPS، امنیت وبسایت را افزایش میدهد و یک اتصال امن میان کاربر و وبسایت میسازد. همچنین، تغییر HTTP به HTTPS، یک رویکرد شایع در اینترانت ها و شبکه های بسته میباشد و برای تست کردن برخی از موارد نیز انجام میشود.
برای اعمال ترافیک ها به HTTPS در فایل .htaccess از کد زیر استفاده میکنیم:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
نکات امنیتی در فایل .htaccess وردپرس
فایل .htaccess، شامل دستورالعمل های مختلف مربوط به بهبود امنیت در وبسایت وردپرسی میباشد. اضافه کردن این دستورالعمل ها، امنیت وبسایت را بهبود میبخشد و از بروز حملات احتمالی به وردپرس(WordPress) جلوگیری میکند.
محدود کردن دسترسی
وردپرس(WordPress) شامل فایل های مختلفی با اطلاعات حساس میباشد که نباید به صورت عمومی در دسترس باشند. برای جلوگیری از دسترسی های ناخواسته به این فایل ها مانند: htacess، wp-config.php. و… از کد زیر استفاده میکنیم:
<FilesMatch "^.*(\.htaccess|\.htpasswd|wp-config\.php)$">
Order allow,deny
Deny from all
</FilesMatch>
برای اضافه کردن بقیه فایل های حساس در سایت خود نیز، میتوانید نام آن را به همین کد اضافه کنید.
غیرفعال کردن دسترسی به دایرکتوری ها
غیرفعال کردن لیست دایرکتوری ها برای مسدودسازی دسترسی های ناخواسته از سمت کاربران، به فایل ها و دایرکتوری های اصلی سرور انجام میشود. این کد لیست دایرکتوری ها غیرفعال میکند:
Options -Indexes
این کد باعث میشود تا محتوای مسیر ها یا دایرکتوری هایی که شامل فایل Index نمیشوند، به کاربران نمایش داده نشود (مانند فایل index.php).
جلوگیری از سرقت پهنای باند یا Image Hotlinking
جلوگیری از سرقت پهنای باند، از پهنای باند سایت وردپرسی محافظت میکند و از ایجاد درگیری در منابع هاست جلوگیری میکند. از کد زیر برای محافظت از تصاویر میزبانی شده در سرور استفاده کنید:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC]
RewriteRule .(gif|jpg|jpeg|png)$ - [NC,F,L]
این کد درخواست مربوط به یک فایل تصویر را بررسی میکند و در صورتی که درخواست از سمت ذکر شده در آن نباشد، آن را مسدود میکند. این کد با بازگردانی کد ارور 403 به آن درخواست، از دسترسی آن به تصویر موجود در سرور جلوگیری میکند.
اعمال محدودیت در آپلود فایل ها
اعمال محدودیت در آپلود برخی از فایل ها، از آپلود فایل های مشکوک و همچنین اسکریپ ها(Scripts)، توسط کاربران جلوگیری میکند. برای جلوگیری از آپلود فایل توسط کاربران به وبسایت، از این کد استفاده میکنیم:
<FilesMatch "\.(exe|php|sh)$">
Order allow,deny
Deny from all
</FilesMatch>
این کد از آپلود فایل های با پسوند .exe، .php و یا .sh جلوگیری میکند.