فایل htaccess وردپرس ممکن است در نگاه اول مرموز به نظر برسد، اما یکی از قدرتمندترین ابزارهایی است که شما برای کنترل نحوه عملکرد وب سایت خود دارید. این فایل پیکربندی کوچک میتواند تغییرات قابلتوجهی در امنیت ، کارایی و عملکرد سایت شما ایجاد کند بدون اینکه نیازی به فرو رفتن عمیق در کد داشته باشید.
اگر تا به حال به این فکر کرده اید که این فایل را کجا پیدا کنید، چگونه آن را به صورت ایمن ویرایش کنید، یا واقعاً چه کاری می توانید با آن انجام دهید، در جای درستی هستید. در این راهنما، همه چیز از مفاهیم اولیه گرفته تا برنامه های کاربردی پیشرفته را بررسی می کنیم و به شما کمک می کنیم از پتانسیل کامل فایل htaccess. سایت وردپرس خود استفاده کنید.
فایل .htaccess در وردپرس (که مخفف “دسترسی فرامتن” یا Hypertext Access است) یک فایل پیکربندی قدرتمند محسوب میشود که وبسرور Apache را راهنمایی میکند که چگونه بخشهای مختلف سایت شما را مدیریت کند. برخلاف فایلهای معمولی PHP که وظایف خاصی را اجرا میکنند، این فایل دستورات مستقیم سطح سرور را ارائه میدهد که میتواند بر کل سایت وردپرسی یا برخی دایرکتوریهای آن تأثیر بگذارد.
این فایل کوچک اما فوقالعاده کاربردی، نقشهای مهمی در سایت وردپرسی شما ایفا میکند، از جمله:
هنگامی که وردپرس نصب میشود، یک نسخه پیشفرض از این فایل را برای مدیریت لینکهای یکتا ایجاد میکند. اما قدرت واقعی آن زمانی مشخص میشود که شما آن را متناسب با نیازهای سایت خود شخصیسازی کنید.
همچنین، بسیاری از افزونههای وردپرس برای عملکرد بهتر، با این فایل تعامل دارند. برای مثال، افزونههای امنیتی قوانین اضافی برای جلوگیری از حملات مخرب اضافه میکنند، در حالی که افزونههای کش تنظیمات لازم برای افزایش سرعت بارگذاری صفحات را در این فایل ثبت میکنند.
با اینکه .htaccess یک فایل فنی محسوب میشود، نیازی نیست که برای استفاده از آن برنامهنویس باشید! اگر بدانید چه تغییراتی را در آن اعمال کنید، میتوانید بدون دردسر، سایت وردپرسی خود را سریعتر، امنتر و بهینهتر کنید. 🚀
از آنجایی که فایل .htaccess در داشبورد وردپرس نمایش داده نمیشود، پیدا کردن آن ممکن است کمی شبیه کارآگاهی باشد! اما نگران نباشید، چون این فایل در دایرکتوری ریشه سایت شما قرار دارد.
📌 دایرکتوری ریشه معمولاً در هاست شما یکی از این نامها را دارد:
برای پیدا کردن این فایل، دو روش اصلی وجود دارد:
اتصال از طریق FTP
اگر میخواهید فایل .htaccess را مستقیماً مشاهده و ویرایش کنید، یکی از بهترین روشها استفاده از FTP است. برای این کار:
1- با یک کلاینت FTP مثل FileZilla به سرور هاست خود متصل شوید.
2- وارد دایرکتوری ریشه سایت وردپرسی خود شوید.
3- فایل .htaccess را در لیست فایلها جستجو کنید.
نکته: اگر این فایل را نمیبینید، ممکن است به دلیل تنظیمات نمایش فایلهای مخفی در هاست شما باشد. در این صورت، باید گزینه “Show Hidden Files” را فعال کنید.
حالا که فایل را پیدا کردید، میتوانید تغییرات لازم را در آن اعمال کنید.
اگر فایل htaccess را نمیبینید…
نگران نباشید! فایل .htaccess بهطور پیشفرض در بیشتر مدیر فایلها (File Manager) و کلاینتهای FTP مخفی است.
چطور آن را نمایش دهیم؟
اگر از FileZilla استفاده میکنید:
حالا دوباره دایرکتوری public_html یا مسیر اصلی سایت را چک کنید. باید فایل .htaccess را ببینید. اگر باز هم نمایش داده نشد، ممکن است اصلاً این فایل در سایت شما وجود نداشته باشد که در این صورت باید آن را دستی ایجاد کنید.
اگه هاست شما سی پنل (cPanel) داره، خیلی راحت میتونید از طریق File Manager به فایل .htaccess دسترسی پیدا کنید.
مراحل کار:
3. به پوشه اصلی وب سایت خود بروید (معمولا public_html )
4. در این دایرکتوری به دنبال فایل htaccess بگردید
گاهی اوقات، .htaccess بهطور پیشفرض در File Manager سی پنل مخفی است. اما نگران نباشید، بهراحتی میتونید نمایش اون رو فعال کنید.
چطور فایلهای مخفی رو ببینیم؟
حالا فایل .htaccess باید در لیست فایلها نمایش داده بشه. اگه باز هم پیداش نکردید، احتمال داره که این فایل توی سایت شما وجود نداشته باشه و نیاز باشه که دستی بسازیدش.
اگه همه مراحل رو انجام دادید، .htaccess باید توی دایرکتوری ریشه (public_html) سایتتون دیده بشه.
اما یه نکته مهم:
اگه مطمئنید که سرورتون Apache هست و باز هم این فایل رو نمیبینید، احتمالاً هنوز ایجاد نشده. نگران نباشید! توی بخش بعدی توضیح میدیم که چطور یه فایل .htaccess جدید بسازید.
اگه سایت وردپرسی شما هنوز فایل .htaccess نداره یا به خاطر مشکلاتی مثل خراب شدن فایل، نیاز به یه نسخه جدید دارید، چند روش ساده برای ساختنش وجود داره. بیاید هر کدوم رو بررسی کنیم.
یکی از سادهترین راهها برای ساخت یه فایل .htaccess پیشفرض اینه که از تنظیمات وردپرس کمک بگیرید:
وردپرس سعی میکند فایل .htaccess را بهطور خودکار با ساختار درست پیوندهای یکتا ایجاد کند، البته فقط در صورتی که مجوزهای لازم برای نوشتن روی سرور را داشته باشد.
اگر نتواند این فایل را بسازد، پیامی به شما نشان میدهد که شامل کدی است که باید بهصورت دستی اضافه کنید. این کد را کپی کنید و از یکی از روشهای دستی که در ادامه توضیح داده میشود، استفاده کنید.
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
اگر استفاده از cPanel را ترجیح میدهید:
[php] # BEGIN WordPress &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;IfModule mod_rewrite.c&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/IfModule&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; # END WordPress [/php]
بعد از ایجاد فایل .htaccess، ممکنه در آینده نیاز داشته باشید که اون رو تغییر بدید. اما دقت کنید! حتی یک اشتباه کوچک توی این فایل میتونه کل سایت شما رو از دسترس خارج کنه.
🔹 قبل از ویرایش، این کارها رو انجام بدید:
💡 نکته: موقع آپلود، FTP رو در حالت Binary Mode تنظیم کنید تا از خرابی فایل جلوگیری بشه.
چند افزونه برای مدیریت .htaccess بدون نیاز به ویرایش دستی وجود داره:
🔹 توجه: این افزونهها کار با .htaccess رو برای مبتدیها راحتتر میکنن اما ممکنه از تمام قابلیتهای پیشرفته این فایل پشتیبانی نکنن.
ویرایش این فایل نیاز به دقت داره. رعایت این نکات از بروز خطاهای خطرناک جلوگیری میکنه:
💡 بعد از هر تغییر، سایتتون رو فوراً تست کنید. اگه سایت از کار افتاد یا با خطای 500 Internal Server Error مواجه شدید، فوراً فایل پشتیبان رو برگردونید.
فایل .htaccess میتونه نحوه عملکرد وردپرس رو در بخشهای مختلف تغییر بده. در ادامه، چند مورد از مهمترین کاربردهای این فایل رو بررسی میکنیم.
ریدایرکتها کاربران و موتورهای جستجو رو از یک آدرس به آدرس دیگه هدایت میکنن. این قابلیت برای حفظ سئوی سایت هنگام تغییر آدرس صفحات یا انتقال سایت بسیار مهمه.
اگه محتوای صفحهای برای همیشه جابجا شده، از ریدایرکت 301 استفاده کنید. این نوع ریدایرکت اعتبار سئویی صفحه قدیمی رو به صفحه جدید منتقل میکنه:
# Redirect single page Redirect 301 /old-page/ https://www.yoursite.com/new-page/ # Redirect entire site to new domain RewriteEngine on RewriteCond %{HTTP_HOST} ^olddomain\.com [NC,OR] RewriteCond %{HTTP_HOST} ^www\.olddomain\.com [NC] RewriteRule ^(.*)$ https://newdomain.com/$1 [L,R=301,NC]
اگه انتقال صفحه موقتی هست و قصد دارید بعداً اون رو به آدرس اصلی برگردونید، از ریدایرکت 302 استفاده کنید:
Redirect 302 /temporary-page/ https://www.yoursite.com/new-page/
بعد از نصب گواهی SSL، لازمه که همه کاربران به نسخه HTTPS سایت هدایت بشن. برای این کار، میتونید از کد زیر در فایل .htaccess استفاده کنید:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
این کد تمام درخواستهای HTTP رو به HTTPS هدایت میکنه و امنیت بازدید کاربران رو افزایش میده.
وردپرس بهطور خودکار ساختار پیوندهای یکتا رو مدیریت میکنه، اما اگه بخواید نحوه نمایش URLها رو شخصیسازی کنید، میتونید از قوانین .htaccess استفاده کنید.
# Make URLs case-insensitive RewriteEngine On RewriteMap lowercase int:tolower RewriteCond %{REQUEST_URI} [A-Z] RewriteRule (.*) ${lowercase:$1} [R=301,L]
مثلاً میتونید URLهای حساس به حروف بزرگ و کوچک رو به نسخه یکسانی هدایت کنید، تا همیشه حروف کوچک استفاده بشه.
البته، اگه نمیخواید مستقیماً فایل .htaccess رو ویرایش کنید، افزونههایی مثل Redirection یا Yoast SEO این کار رو از طریق یک رابط کاربری ساده براتون انجام میدن و کدهای لازم رو خودشون به فایل اضافه میکنن.
یادتون باشه که هر دستور اضافی توی این فایل، روی عملکرد سرور تأثیر میذاره. پس بهتره دستورهای بلااستفاده رو حذف کنید تا سایتتون سریع و بهینه بمونه.
سایت وردپرسی شما روزانه در معرض تهدیدهای مختلف قرار داره. اما با کمک فایل .htaccess میتونید بدون نیاز به افزونههای اضافی، سطح امنیت سایت رو بالا ببرید. در ادامه، چند روش مؤثر رو بررسی میکنیم.
اگه متوجه فعالیتهای مشکوک از طرف برخی آدرسهای IP شدید، میتونید دسترسی اونها رو کاملاً مسدود کنید:
# Block individual IP addresses <Limit GET POST> order allow,deny deny from 123.45.67.89 deny from 98.76.54.32 allow from all </Limit>
آیپیهای نمونه رو با آدرسهای واقعی که میخواید مسدود کنید جایگزین کنید. این کار باعث میشه این آیپیها هیچ دسترسیای به سایت شما نداشته باشن.
به عنوان مثال ما در کد زیر اومدیم گفتیم آیپی های کشور فلاند که با 65.21 شروع می شوند رو بلاک کن تا هیچ شخصی نتواند از این کشور از سایت ما بازید کند.
<Limit GET POST> order allow,deny deny from 65.21.0.0/16 allow from all </Limit>
شما میتوانید آی پی هر کشوری را از این طریق محدود کنید.
برای افزایش امنیت پیشخوان وردپرس، میتونید یه لایه محافظتی اضافی به مسیر wp-admin اضافه کنید و دسترسی به این بخش رو فقط برای کاربران مجاز امکانپذیر کنید.
# Protect wp-admin directory <Files wp-login.php> AuthName "Admin Area" AuthType Basic AuthUserFile /path/to/.htpasswd require valid-user </Files>
برای این کار، باید یه فایل .htpasswd ایجاد کنید که شامل نام کاربری و رمز عبور رمزگذاریشده باشه. میتونید از تولیدکنندههای آنلاین .htpasswd برای ساخت این فایل استفاده کنید.
بهطور پیشفرض، اگه یه دایرکتوری فایل index نداشته باشه، کاربران میتونن لیست فایلهای داخلش رو ببینن. برای جلوگیری از این مشکل، از کد زیر استفاده کنید:
# Disable directory browsing Options All -Indexes
این دستور ساده باعث میشه هکرها و کاربران غیرمجاز نتونن ساختار فایلهای سایت شما رو مشاهده کنن.
هاتلینکینگ زمانی اتفاق میافته که سایتهای دیگه تصاویر شما رو مستقیماً از سرورتون بارگذاری کنن و از پهنای باند شما استفاده کنن. برای جلوگیری از این مشکل، از کد زیر استفاده کنید:
# Prevent image hotlinking RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
عبارت “yourdomain.com” رو با دامنه واقعی سایت خودتون جایگزین کنید. این کار باعث میشه سایتهای خارجی نتونن تصاویر شما رو مستقیماً روی سایت خودشون نمایش بدن.
اگر قصد یادگیری طراحی سایت با وردپرس را دارید از صفحه دوره های طراحی سایت ما بازدید کنید.
فایل wp-config.php شامل اطلاعات حساس مثل نام کاربری و رمز عبور دیتابیس شماست. برای جلوگیری از دسترسی غیرمجاز، از کد زیر استفاده کنید:
# Protect wp-config.php <files wp-config.php> order allow,deny deny from all </files>
این کد اجازه نمیده هیچکس مستقیماً از طریق مرورگر به فایل wp-config.php دسترسی پیدا کنه.
✅ نکته مهم: این اقدامات امنیتی باید در کنار سایر روشهای حفاظتی مثل بهروزرسانی منظم، استفاده از رمزهای عبور قوی و محدود کردن دسترسی کاربران انجام بشه.
🔹 اگه سایت شما به لایههای امنیتی بیشتری نیاز داره، بهتره این قوانین .htaccess رو در کنار یک افزونه امنیتی وردپرس استفاده کنید. این ترکیب، هم حفاظت در سطح سرور رو ارائه میده و هم نظارت بر تهدیدات درون سایت رو انجام میده.
سرعت سایت نهتنها روی تجربه کاربری تأثیر داره، بلکه رتبه شما در موتورهای جستجو رو هم تحت تأثیر قرار میده. با چند خط کد در .htaccess میتونید عملکرد وردپرس رو بهطور چشمگیری بهینه کنید.
کش مرورگر باعث میشه فایلهای ثابت سایت (مثل تصاویر، CSS و JavaScript) در مرورگر کاربر ذخیره بشه و در مراجعههای بعدی سایت سریعتر لود بشه:
# Enable browser caching <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/javascript "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType text/html "access plus 1 week" ExpiresByType application/xhtml+xml "access plus 1 week" ExpiresDefault "access plus 1 week" </IfModule>
این تنظیمات زمان انقضای کش رو بر اساس نوع فایل مشخص میکنه. مثلا تصاویر که کمتر تغییر میکنن، مدت بیشتری در کش مرورگر میمونن، ولی فایلهای HTML که ممکنه بیشتر تغییر کنن، زودتر بهروزرسانی میشن. این کار هم مصرف پهنای باند رو کاهش میده و هم سرعت لود سایت رو بالا میبره.
فشردهسازی Gzip حجم فایلهای سایت رو قبل از ارسال به مرورگر کاربر کاهش میده و باعث میشه سایت سریعتر بارگذاری بشه. این روش مخصوصاً برای فایلهای متنی مثل HTML، CSS و JavaScript خیلی مؤثره.
# Enable Gzip compression <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json </IfModule>
این فایلهای مبتنی بر متن مانند HTML، CSS و جاوا اسکریپت را فشرده میکند و باعث میشود آنها سریعتر بارگذاری شوند.
با این تنظیمات میتوانید مشخص کنید که مرورگر کاربران تا چه مدت فایلهای مختلف را در حافظه کش نگه دارد.
# Set cache control headers <IfModule mod_headers.c> <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> </IfModule>
این تنظیم، فایلهای استاتیک را به مدت ۳۰ روز (۲,۵۹۲,۰۰۰ ثانیه) در کش مرورگر نگه میدارد.
بهینهسازی عملکرد از طریق .htaccess بهتر است در کنار روشهای دیگری مانند فشردهسازی تصاویر، کوچکسازی کدهای CSS و JavaScript و استفاده از شبکه توزیع محتوا (CDN) انجام شود. برای بهترین نتیجه، این تکنیکها را با یک افزونه کش مناسب ترکیب کنید.
همه هاستها از این دستورات پشتیبانی نمیکنند، بنابراین هر تغییر را جداگانه تست کنید تا مطمئن شوید که با تنظیمات سرور شما سازگار است.
ابزارهایی مانند Google PageSpeed Insights و GTmetrix به شما کمک میکنند که سرعت سایت را قبل و بعد از این تغییرات بسنجید و تأثیر بهینهسازیها را ارزیابی کنید.
اگر فایل .htaccess شما دچار مشکل شود، معمولاً نشانههای زیر ظاهر میشوند:
اگر این مشکلات بلافاصله بعد از ویرایش .htaccess اتفاق افتاد، احتمال زیاد ایراد از تغییرات اخیر شماست.
این خطای معروف معمولاً به دلیل اشتباهات نحوی در فایل .htaccess رخ میدهد. برای برطرف کردن آن:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
اگر نیاز به قوانین سفارشی خود دارید، آنها را یکییکی اضافه کنید و بعد از هر تغییر، سایت را تست کنید تا متوجه شوید که کدام بخش باعث مشکل شده است.
این خطا معمولاً به دلیل ایجاد یک حلقه بینهایت در قوانین تغییر مسیر (ریدایرکت) رخ میدهد. برای حل آن:
مثلاً اگر هم یک پلاگین و هم .htaccess هر دو کاربران را به HTTPS هدایت میکنند، یکی از این روشها را غیرفعال کنید تا از ایجاد حلقه جلوگیری شود.
اگر صفحات یا نوشتههای سایت شما وجود دارند اما خطای 404 دریافت میکنید:
برای جلوگیری از این مشکلات در آینده:
با رعایت این نکات، میتوانید بیشتر مشکلات مربوط به .htaccess را بدون ایجاد اختلال جدی در سایت برطرف کنید.
فایل .htaccess یکی از ابزارهای قدرتمند در وردپرس است که کنترل زیادی روی عملکرد، امنیت و سرعت سایت شما دارد. از مدیریت پیوندهای یکتا گرفته تا افزایش امنیت، بهینهسازی سرعت و رفع مشکلات رایج، این فایل نقش مهمی در عملکرد کلی سایت ایفا میکند.
در طول این راهنما، روشهای ایجاد و ویرایش .htaccess، بهینهسازی آن برای افزایش امنیت و سرعت، و همچنین رفع خطاهای رایج را بررسی کردیم. رعایت چند اصل ساده، مانند تهیه نسخه پشتیبان، تست تغییرات قبل از اعمال، و آشنایی با قوانین بازنویسی، به شما کمک میکند تا بدون دردسر از این ابزار قدرتمند استفاده کنید.
در نهایت، اگر تازهکار هستید یا تنظیمات پیچیدهتری نیاز دارید، همیشه میتوانید از افزونههای وردپرسی یا کمک هاستینگ خود برای مدیریت بهتر .htaccess استفاده کنید. با مدیریت صحیح این فایل، سایت شما امنتر، سریعتر و کارآمدتر خواهد بود.