فایل .htaccess یکی از فایلهای مهم پیکربندی در بسیاری از وبسایتهاست که میتواند نحوه پاسخگویی سرور به درخواستهای کاربران و موتورهای جستوجو را تغییر دهد. با استفاده از این فایل میتوان کارهایی مانند ساخت ریدایرکت، فعالسازی آدرسهای خوانا، هدایت کاربران به HTTPS، محدود کردن دسترسی، تعریف صفحه خطای اختصاصی و تنظیم کش مرورگر را انجام داد.
با وجود کاربردهای فراوان، ویرایش اشتباه .htaccess ممکن است باعث ایجاد خطای ۵۰۰، از دسترس خارج شدن صفحات یا شکلگیری حلقه ریدایرکت شود. به همین دلیل قبل از تغییر این فایل باید از نسخه فعلی آن پشتیبان تهیه و هر تغییر بهصورت جداگانه آزمایش شود.
در این مقاله بررسی میکنیم فایل .htaccess چیست، کجا قرار دارد، چگونه کار میکند و چه کاربردهایی در مدیریت سایت، وردپرس، امنیت، سرعت و سئو دارد.
فایل .htaccess چیست؟
فایل .htaccess یک فایل پیکربندی سطح دایرکتوری برای وبسرور Apache است. نام آن از عبارت Hypertext Access گرفته شده و نقطه ابتدای نام نیز باعث میشود در سیستمهای مبتنی بر لینوکس بهعنوان فایل مخفی شناخته شود.
این فایل به مدیر سایت اجازه میدهد بدون دسترسی مستقیم به فایل اصلی پیکربندی سرور، بعضی از تنظیمات را برای یک پوشه مشخص تغییر دهد. دستورهای قرارگرفته در .htaccess معمولاً روی همان پوشه و زیرپوشههای آن اثر میگذارند.
برای مثال، اگر فایل در پوشه اصلی سایت قرار داشته باشد، قوانین آن میتوانند بر کل سایت تأثیر بگذارند. اگر یک .htaccess جداگانه در پوشهای مانند uploads قرار داده شود، تنظیمات آن معمولاً روی همان پوشه و زیرپوشههایش اعمال خواهند شد.
فایل .htaccess چگونه کار میکند؟
زمانی که کاربر آدرسی از سایت را درخواست میکند، وبسرور مسیر مربوط به فایل یا صفحه را بررسی میکند. اگر استفاده از .htaccess در تنظیمات سرور مجاز باشد، Apache دستورهای موجود در این فایل را نیز میخواند و براساس آنها تصمیم میگیرد درخواست چگونه پردازش شود.
این دستورها میتوانند مشخص کنند:
- کاربر به آدرس دیگری هدایت شود.
- دسترسی به یک فایل مسدود شود.
- درخواست به فایل
index.phpمنتقل شود. - صفحه خطای اختصاصی نمایش داده شود.
- فایلها برای مدت مشخص در مرورگر ذخیره شوند.
- محتوای قابل فشردهسازی با حجم کمتری ارسال شود.
- دسترسی فقط برای IPهای مشخص امکانپذیر باشد.
میزان دسترسی .htaccess توسط تنظیماتی مانند AllowOverride در پیکربندی اصلی سرور کنترل میشود. اگر AllowOverride None فعال باشد، سرور فایل .htaccess را نادیده میگیرد.
فایل .htaccess در کجا قرار دارد؟
در بیشتر سایتها، فایل اصلی .htaccess در پوشه ریشه وبسایت قرار دارد؛ یعنی همان پوشهای که فایلهایی مانند index.php در آن دیده میشوند.
نام این پوشه در سرویسهای مختلف ممکن است یکی از موارد زیر باشد:
public_html
www
htdocs
httpdocs
در وردپرس معمولاً فایل .htaccess کنار پوشهها و فایلهای زیر قرار دارد:
wp-admin
wp-content
wp-includes
wp-config.php
index.php
.htaccess
اگر سایت روی یک زیرپوشه نصب شده باشد، ممکن است فایل در همان زیرپوشه قرار داشته باشد.
برای دسترسی به محل نگهداری فایلهای سایت باید وارد کنترلپنل سرویس میزبانی یا نرمافزار FTP شوید. مقاله هاست چیست مفهوم فضای میزبانی، کنترلپنل و انواع سرویسهای هاست را توضیح میدهد.
چرا فایل .htaccess را در هاست نمیبینیم؟
نقطه ابتدای نام .htaccess باعث میشود این فایل در بسیاری از فایلمنیجرها مخفی باشد. برای مشاهده آن باید گزینه نمایش فایلهای مخفی را فعال کنید.
در cPanel معمولاً میتوان مراحل زیر را انجام داد:
- وارد File Manager شوید.
- پوشه
public_htmlرا باز کنید. - وارد بخش Settings شوید.
- گزینه Show Hidden Files را فعال کنید.
- تنظیمات را ذخیره کنید.
اگر پس از فعال کردن فایلهای مخفی همچنان .htaccess وجود نداشت، ممکن است فایل هنوز ساخته نشده باشد یا سایت از وبسروری استفاده کند که این فایل را به کار نمیگیرد.
آیا همه وبسایتها فایل .htaccess دارند؟
خیر. .htaccess متعلق به محیطهایی است که وبسرور Apache یا سروری با پشتیبانی سازگار از قوانین Apache دارند.
در بسیاری از سرویسهای اشتراکی از Apache یا LiteSpeed استفاده میشود و امکان استفاده از .htaccess وجود دارد. اما وبسرور Nginx این فایل را پردازش نمیکند و تنظیمات مشابه باید در فایلهای پیکربندی Nginx انجام شوند.
بنابراین پیش از اضافه کردن هر دستور باید نوع وبسرور و قابلیتهای فعال روی هاست بررسی شوند. کدی که روی یک هاست کار میکند ممکن است روی سرویس دیگری بدون اثر باشد یا خطای سرور ایجاد کند.
تفاوت .htaccess با فایلهای معمولی سایت چیست؟
فایل .htaccess صفحه سایت، فایل برنامهنویسی یا محتوای قابل نمایش برای کاربر نیست. این فایل مجموعهای از دستورهای پیکربندی برای وبسرور است.
برای مثال:
- فایل HTML محتوای صفحه را نمایش میدهد.
- فایل CSS ظاهر صفحه را مشخص میکند.
- فایل PHP منطق برنامه را اجرا میکند.
- فایل
.htaccessنحوه برخورد سرور با درخواستها را تغییر میدهد.
در یک پروژه طراحی سایت، بخشی از تنظیمات مربوط به آدرسها، ریدایرکتها، دسترسی و عملکرد سرور ممکن است از طریق این فایل مدیریت شود؛ البته روش دقیق به زیرساخت سایت بستگی دارد.
مهمترین کاربردهای فایل .htaccess
۱. ساخت ریدایرکت
یکی از رایجترین کاربردهای .htaccess هدایت یک URL به آدرس دیگر است. این قابلیت زمانی کاربرد دارد که صفحهای حذف شده، نشانی آن تغییر کرده یا دو صفحه با یکدیگر ادغام شدهاند.
نمونه ریدایرکت دائمی:
Redirect 301 /old-page/ https://example.com/new-page/
در این مثال، کاربری که وارد /old-page/ شود به آدرس جدید منتقل خواهد شد.
ریدایرکت 301 برای انتقال دائمی استفاده میشود. اگر انتقال موقت است، باید نوع ریدایرکت متناسب با شرایط انتخاب شود.
پیش از استفاده باید موارد زیر بررسی شوند:
- آدرس قدیمی واقعاً نیاز به انتقال داشته باشد.
- مقصد جدید از نظر موضوعی مرتبط باشد.
- صفحه مقصد باز شود و خطا نداشته باشد.
- ریدایرکت به حلقه تبدیل نشود.
- چند ریدایرکت پشت سر هم ایجاد نشوند.
۲. هدایت کاربران از HTTP به HTTPS
پس از نصب گواهی SSL میتوان درخواستهای HTTP را به نسخه امن HTTPS هدایت کرد.
نمونه عمومی:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
این کد برای همه زیرساختها مناسب نیست. اگر سایت پشت CDN، پراکسی معکوس یا Load Balancer قرار داشته باشد، تشخیص HTTPS ممکن است به روش دیگری انجام شود و استفاده مستقیم از این کد حلقه ریدایرکت ایجاد کند.
در چنین شرایطی بهتر است HTTPS از تنظیمات هاست، CDN یا پیکربندی اصلی سرور فعال شود.
۳. انتخاب نسخه www یا بدون www
گاهی یک سایت با هر دو آدرس زیر باز میشود:
https://example.com
https://www.example.com
بهتر است یکی از این دو نسخه بهعنوان نسخه اصلی انتخاب و نسخه دیگر به آن ریدایرکت شود. این هماهنگی باید در تمام بخشها رعایت شود:
- تنظیمات سایت
- لینکهای داخلی
- تگ Canonical
- نقشه سایت
- سرچ کنسول
- فایل
.htaccess - تنظیمات CDN
اگر نسخه اصلی اشتباه انتخاب شود یا DNS آن تنظیم نباشد، سایت ممکن است از دسترس خارج شود. به همین دلیل نباید یک قطعه کد عمومی را بدون بررسی دامنه کپی کرد.
۴. ایجاد URLهای خوانا
ماژول mod_rewrite در Apache امکان بازنویسی URLها را فراهم میکند. این قابلیت میتواند یک آدرس پیچیده را در ظاهر به آدرسی کوتاهتر و قابل فهم تبدیل کند.
برای مثال، سیستم ممکن است یک صفحه را بهصورت داخلی با آدرس زیر پردازش کند:
index.php?page=services&id=12
اما کاربر آدرسی مانند نمونه زیر ببیند:
/services/web-design/
در این فرایند همیشه لازم نیست فایل یا پوشهای با همان نام در سرور وجود داشته باشد. درخواست کاربر میتواند از طریق قوانین بازنویسی به فایل اصلی برنامه منتقل شود. ماژول mod_rewrite برای بازنویسی و هدایت قانونمحور URLها استفاده میشود.
۵. مدیریت پیوندهای یکتا در وردپرس
یکی از مهمترین کاربردهای .htaccess در وردپرس، مدیریت پیوندهای یکتا یا Permalinks است.
بدون بازنویسی URL ممکن است آدرس یک نوشته بهشکل زیر باشد:
https://example.com/?p=123
اما با تنظیم پیوندهای یکتا میتوان آدرسی خواناتر ایجاد کرد:
https://example.com/article-name/
وردپرس درخواست این آدرس را از طریق قوانین .htaccess به فایل index.php منتقل میکند تا محتوای مناسب نمایش داده شود.
نمونه پایه فایل وردپرس:
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
ساختار دقیق فایل میتواند براساس محل نصب وردپرس، شبکه چندسایته و تنظیمات هاست متفاوت باشد. وردپرس از .htaccess برای مدیریت نحوه پردازش آدرسهای خوانا استفاده میکند.
اگر با این سیستم مدیریت محتوا آشنا نیستید، مقاله وردپرس چیست نحوه عملکرد و کاربردهای آن را توضیح میدهد.
۶. جلوگیری از نمایش فهرست فایلهای پوشه
اگر در یک پوشه فایل index.php یا index.html وجود نداشته باشد، بعضی سرورها ممکن است فهرست فایلهای آن پوشه را نمایش دهند.
برای جلوگیری از این وضعیت میتوان از دستور زیر استفاده کرد:
Options -Indexes
با این تنظیم، کاربر نمیتواند تنها با وارد کردن آدرس پوشه، فهرست فایلهای موجود در آن را مشاهده کند.
فعال بودن Directory Listing همیشه به معنای وجود آسیبپذیری مستقیم نیست، اما ممکن است نام و ساختار فایلهایی را نمایش دهد که نیازی به عمومی بودن آنها نیست.
۷. محافظت از فایلهای حساس
با استفاده از .htaccess میتوان دسترسی مستقیم وب به بعضی فایلهای حساس را مسدود کرد.
نمونه برای Apache 2.4:
<FilesMatch "^(wp-config\.php|\.env)$">
Require all denied
</FilesMatch>
این دستور دسترسی مستقیم مرورگر به فایلهای wp-config.php و .env را مسدود میکند.
قبل از اعمال چنین قوانینی باید بررسی شود که برنامه برای عملکرد خود به دسترسی HTTP مستقیم به فایل موردنظر نیاز نداشته باشد. مسیر فایل، نسخه Apache و تنظیمات هاست نیز باید در نظر گرفته شوند.
۸. محدود کردن دسترسی براساس IP
در بعضی شرایط میتوان دسترسی به یک فایل یا پوشه را فقط برای IPهای مشخص مجاز کرد.
نمونه:
<RequireAll>
Require all denied
Require ip 203.0.113.10
</RequireAll>
در این مثال فقط IP تعیینشده اجازه دسترسی دارد. باید IP نمونه با آدرس واقعی جایگزین شود.
این روش برای اینترنتهایی با IP متغیر مناسب نیست؛ زیرا پس از تغییر IP، مدیر سایت نیز ممکن است دسترسی خود را از دست بدهد. همچنین اگر سایت پشت CDN یا پراکسی قرار داشته باشد، IP مشاهدهشده توسط سرور ممکن است IP واقعی کاربر نباشد.
۹. ساخت صفحه خطای اختصاصی
با استفاده از دستور ErrorDocument میتوان برای خطاهایی مانند 404 یا 403 صفحه اختصاصی تعریف کرد.
نمونه:
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
صفحه خطای اختصاصی باید:
- وضعیت HTTP صحیح را حفظ کند.
- مسیرهای اصلی سایت را به کاربر نشان دهد.
- امکان بازگشت به صفحه اصلی را فراهم کند.
- شبیه سایر صفحات سایت طراحی شده باشد.
- کاربر را بدون دلیل به صفحه اصلی ریدایرکت نکند.
نمایش صفحه خطای زیبا همراه با وضعیت اشتباه 200 میتواند باعث ایجاد Soft 404 شود.
۱۰. تنظیم کش مرورگر
فایل .htaccess میتواند مشخص کند مرورگر فایلهای ثابت را برای چه مدتی نگهداری کند.
نمونه:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
کش مرورگر میتواند تعداد درخواستهای تکراری و زمان بارگذاری بازدیدهای بعدی را کاهش دهد. با این حال، اگر نام فایلها پس از تغییر ثابت بماند، ممکن است کاربر نسخه قدیمی CSS یا JavaScript را ببیند.
برای فایلهایی با کش طولانی بهتر است از نسخهگذاری نام فایل یا Query String مناسب استفاده شود.
۱۱. فعالسازی فشردهسازی پاسخها
اگر ماژول مربوط روی سرور فعال باشد، میتوان بعضی فایلهای متنی را پیش از ارسال فشرده کرد.
نمونه:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
فشردهسازی معمولاً برای فایلهای متنی مفید است. تصاویر JPEG، PNG و WebP از قبل فشرده هستند و فشردهسازی مجدد آنها معمولاً فایده قابل توجهی ندارد.
ممکن است هاست، افزونه کش یا CDN از قبل فشردهسازی را فعال کرده باشد. اضافه کردن تنظیمات تکراری بدون بررسی ضرورتی ندارد.
۱۲. تعیین فایل پیشفرض پوشه
دستور DirectoryIndex مشخص میکند هنگام درخواست یک پوشه، کدام فایل بهعنوان صفحه پیشفرض نمایش داده شود.
نمونه:
DirectoryIndex index.php index.html
در این مثال، سرور ابتدا بهدنبال index.php میگردد و اگر وجود نداشته باشد، index.html را بررسی میکند.
۱۳. محافظت از یک بخش با نام کاربری و رمز عبور
.htaccess میتواند همراه با فایل .htpasswd برای ایجاد احراز هویت پایه استفاده شود.
نمونه:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile "/absolute/path/to/.htpasswd"
Require valid-user
مسیر فایل .htpasswd باید واقعی و ترجیحاً خارج از پوشه عمومی سایت باشد. اطلاعات رمز نباید مستقیماً داخل .htaccess نوشته شوند.
احراز هویت پایه باید روی HTTPS استفاده شود؛ زیرا بدون ارتباط امن، اطلاعات ورود حفاظت کافی ندارند.
۱۴. جلوگیری از Hotlink تصاویر
Hotlink زمانی اتفاق میافتد که سایت دیگری تصویر موجود روی سرور شما را مستقیماً با همان URL نمایش دهد. در این حالت پهنای باند هاست شما مصرف میشود.
میتوان با قوانین Rewrite دسترسی بعضی دامنهها را محدود کرد، اما پیادهسازی نادرست ممکن است نمایش تصاویر در گوگل، شبکههای اجتماعی، فیدها یا CDN را نیز مختل کند.
برای سایتهای دارای CDN بهتر است کنترل Hotlink از تنظیمات همان سرویس انجام شود.
کاربرد .htaccess در سایتهای مختلف
سایتهای فروشگاهی
در طراحی سایت فروشگاهی فایل .htaccess ممکن است برای مدیریت موارد زیر استفاده شود:
- ریدایرکت محصولات حذفشده
- هدایت HTTP به HTTPS
- تنظیم کش تصاویر محصولات
- ایجاد URLهای خوانا
- فشردهسازی فایلهای متنی
- محافظت از فایلهای حساس
- جلوگیری از نمایش پوشهها
ریدایرکت تمام محصولات ناموجود به صفحه اصلی کار درستی نیست. اگر محصول جایگزین مرتبطی وجود دارد، میتوان صفحه قدیمی را به آن منتقل کرد. در غیر این صورت باید براساس شرایط، صفحه حفظ، حذف یا با وضعیت مناسب پاسخ داده شود.
سایتهای صنعتی
در طراحی سایت صنعتی ممکن است کاتالوگها، فایلهای فنی، صفحات محصولات و فرمهای دریافت پیشفاکتور وجود داشته باشند.
در چنین سایتهایی .htaccess میتواند برای مدیریت آدرس فایلهای قدیمی، محدود کردن دسترسی به پوشههای داخلی، تنظیم کش و کنترل دانلود بعضی فایلها استفاده شود.
اگر کاتالوگ یا فایل PDF باید در گوگل ایندکس شود، نباید دسترسی خزندهها به آن مسدود شود.
تفاوت فایل .htaccess با سایت مپ چیست؟
سایت مپ فایلی برای معرفی آدرس صفحات مهم به موتورهای جستوجو است؛ اما .htaccess مجموعهای از قوانین مربوط به رفتار وبسرور محسوب میشود.
| موضوع | .htaccess | Sitemap |
|---|---|---|
| کاربرد اصلی | پیکربندی رفتار سرور | معرفی URLهای مهم |
| مخاطب | وبسرور | موتورهای جستوجو |
| فرمت معمول | دستورهای Apache | XML |
| ریدایرکت | انجام میدهد | انجام نمیدهد |
| کنترل دسترسی | امکانپذیر است | امکانپذیر نیست |
| معرفی صفحات | وظیفه اصلی نیست | وظیفه اصلی است |
| خطای ویرایش | ممکن است سایت را مختل کند | معمولاً فقط پردازش Sitemap دچار مشکل میشود |
این دو فایل میتوانند در کنار یکدیگر استفاده شوند، اما وظایف متفاوتی دارند.
تأثیر فایل .htaccess بر سئو
فایل .htaccess بهخودیخود باعث افزایش رتبه سایت نمیشود، اما بعضی تنظیمات آن میتوانند بر سئوی فنی اثر بگذارند.
کاربردهای مرتبط با سئو عبارتاند از:
- اجرای ریدایرکت صحیح صفحات قدیمی
- یکسانسازی HTTP و HTTPS
- یکسانسازی www و بدون www
- ساخت URLهای خوانا
- بهبود کش فایلهای ثابت
- فعالسازی فشردهسازی
- مدیریت صفحههای خطا
- جلوگیری از ایجاد چند نسخه قابل دسترسی از یک صفحه
در مقابل، تنظیمات اشتباه میتوانند مشکلات زیر را ایجاد کنند:
- حلقه ریدایرکت
- زنجیرههای طولانی ریدایرکت
- انتقال صفحات به مقصد نامرتبط
- خطای 500
- مسدود شدن فایلهای ضروری
- از دسترس خارج شدن تصاویر و CSS
- ایجاد نسخههای تکراری URL
- اشتباه در وضعیت صفحات حذفشده
- کاهش سرعت بهدلیل قوانین پیچیده
تنظیمات .htaccess باید در چک لیست طراحی سایت و بررسیهای پیش از انتشار سایت کنترل شوند.
آیا استفاده از .htaccess روی سرعت سایت تأثیر دارد؟
بله، اما میزان تأثیر به تنظیمات سرور و پیچیدگی قوانین بستگی دارد.
Apache هنگام فعال بودن .htaccess ممکن است در مسیر پوشهها بهدنبال این فایل بگردد و دستورهای آن را برای درخواستها پردازش کند. مستندات Apache توصیه میکنند اگر به پیکربندی اصلی سرور دسترسی دارید، قوانین را در فایل اصلی قرار دهید؛ زیرا تنظیمات اصلی هنگام راهاندازی سرور خوانده میشوند، در حالی که .htaccess در زمان درخواست پردازش میشود.
در هاست اشتراکی معمولاً دسترسی به تنظیمات اصلی وجود ندارد؛ بنابراین .htaccess روش عملی مدیریت بخشی از تنظیمات است.
برای جلوگیری از افت عملکرد:
- قوانین تکراری را حذف کنید.
- ریدایرکتها را کوتاه و مستقیم نگه دارید.
- از عبارتهای منظم بسیار پیچیده استفاده نکنید.
- کدهای باقیمانده از افزونههای حذفشده را پاک کنید.
- از چند سیستم کش همزمان استفاده نکنید.
- تغییرات را با ابزارهای بررسی سرعت آزمایش کنید.
فایل .htaccess در وردپرس چه نقشی دارد؟
وردپرس بیش از همه برای مدیریت پیوندهای یکتا از .htaccess استفاده میکند. بعضی افزونهها نیز ممکن است قوانین مربوط به کش، امنیت، ریدایرکت و محدودیت دسترسی را به آن اضافه کنند.
بخشهایی که میان نشانههای زیر قرار دارند معمولاً توسط وردپرس مدیریت میشوند:
# BEGIN WordPress
...
# END WordPress
تغییرات سفارشی بهتر است بدون شناخت کافی داخل این بخش قرار نگیرند؛ زیرا وردپرس یا بعضی فرایندهای مدیریتی ممکن است قوانین این محدوده را دوباره تولید کنند.
پیش از حذف هر دستور باید مشخص شود که آن کد توسط وردپرس، افزونه امنیتی، افزونه کش یا مدیر سرور ایجاد شده است.
چگونه فایل .htaccess را با امنیت ویرایش کنیم؟
۱. از فایل نسخه پشتیبان تهیه کنید
قبل از هر تغییری، نسخه فعلی فایل را دانلود یا کپی کنید. برای مثال میتوانید نسخه پشتیبان را با نام زیر نگه دارید:
htaccess-backup.txt
۲. فقط یک تغییر انجام دهید
چند قطعه کد را همزمان اضافه نکنید. پس از هر تغییر، سایت را آزمایش کنید تا در صورت ایجاد خطا، علت آن مشخص باشد.
۳. از ویرایشگر متن ساده استفاده کنید
فایل را با ویرایشگری ذخیره کنید که قالببندی اضافی وارد نکند. استفاده از نرمافزارهایی مانند Word ممکن است کاراکترهای نامناسب به فایل اضافه کند.
۴. صفحات مختلف را آزمایش کنید
پس از ذخیره فایل، فقط صفحه اصلی را بررسی نکنید. این بخشها را نیز باز کنید:
- صفحه اصلی
- صفحات داخلی
- نوشتهها
- محصولات
- پنل مدیریت
- فایلهای CSS و JavaScript
- تصاویر
- فرمها
- صفحه 404
۵. کش را پاک کنید
ممکن است نتیجه تغییر بهدلیل کش مرورگر، افزونه یا CDN بلافاصله دیده نشود. پس از تغییر، کشهای مرتبط را پاک کنید.
۶. گزارش خطای سرور را بررسی کنید
اگر سایت خطای 500 نمایش میدهد، گزارش Error Log معمولاً نام دستور اشتباه یا غیرمجاز را مشخص میکند.
اگر پس از ویرایش .htaccess سایت خراب شد چه کنیم؟
اگر بلافاصله پس از تغییر فایل، سایت خطای 500 یا صفحه سفید نمایش داد، مراحل زیر را انجام دهید:
- وارد File Manager یا FTP شوید.
- فایل ویرایششده را تغییر نام دهید.
- نسخه پشتیبان را به نام
.htaccessبازگردانید. - سایت را دوباره آزمایش کنید.
- Error Log هاست را بررسی کنید.
- کد اضافهشده را با مستندات وبسرور تطبیق دهید.
- از پشتیبانی هاست درباره ماژولهای فعال سؤال کنید.
اگر نسخه پشتیبان ندارید و سایت وردپرسی است، میتوان فایل را موقتاً تغییر نام داد و سپس از بخش «تنظیمات ← پیوندهای یکتا» تنظیمات را دوباره ذخیره کرد تا وردپرس در صورت داشتن دسترسی لازم، قوانین پایه را بازسازی کند.
این روش ممکن است قوانین سفارشی افزونههای امنیتی، کش یا ریدایرکت را بازنگرداند. بنابراین نسخه پشتیبان همچنان بهترین راه بازیابی است.
خطاهای رایج هنگام ویرایش .htaccess
کپی کردن کد بدون شناخت سرور
هر قطعه کدی برای همه هاستها مناسب نیست. نسخه Apache، ماژولهای فعال، CDN و نوع اجرای PHP میتوانند نتیجه را تغییر دهند.
ایجاد حلقه ریدایرکت
اگر دو قانون کاربر را بهطور متقابل میان دو آدرس جابهجا کنند، خطای Too Many Redirects ایجاد میشود.
استفاده از آدرس مقصد اشتباه
یک اشتباه کوچک در دامنه یا مسیر میتواند تمام کاربران سایت را به آدرس نادرست هدایت کند.
حذف کدهای وردپرس
حذف قوانین پایه وردپرس ممکن است باعث شود صفحه اصلی باز شود اما نوشتهها و برگههای داخلی خطای 404 نمایش دهند.
استفاده نادرست از php_value
دستورهای php_value و php_flag در همه روشهای اجرای PHP قابل استفاده نیستند و روی بعضی سرورها باعث خطای 500 میشوند. برای تغییر تنظیمات PHP بهتر است از بخش PHP Options هاست، فایل php.ini یا روش پیشنهادی شرکت میزبانی استفاده شود.
قرار دادن دستور غیرمجاز
اگر دستور موردنظر توسط AllowOverride مجاز نشده باشد، سرور ممکن است آن را نادیده بگیرد یا خطای 500 ایجاد کند.
تغییر فایل بدون نسخه پشتیبان
بدون نسخه سالم، بازگرداندن سایت به حالت قبلی دشوارتر میشود؛ بهخصوص اگر چند افزونه قبلاً قوانین اختصاصی نوشته باشند.
چه زمانی نباید .htaccess را ویرایش کنیم؟
در شرایط زیر بهتر است قبل از هر تغییری با توسعهدهنده یا پشتیبانی هاست مشورت شود:
- نوع وبسرور مشخص نیست.
- سایت پشت CDN یا پراکسی قرار دارد.
- وردپرس بهصورت Multisite نصب شده است.
- قوانین زیادی در فایل وجود دارند.
- سایت فروشگاهی فعال و پرترافیک است.
- تنظیمات امنیتی توسط افزونه انجام میشوند.
- به نسخه پشتیبان دسترسی ندارید.
- هدف کد کپیشده را نمیدانید.
- خطای سرور از قبل وجود دارد.
- فایل توسط سیستم استقرار خودکار مدیریت میشود.
جمعبندی
فایل .htaccess یک فایل پیکربندی سطح دایرکتوری در وبسرور Apache است. از این فایل میتوان برای ریدایرکت صفحات، مدیریت HTTPS، بازنویسی URLها، فعالسازی پیوندهای یکتا در وردپرس، تنظیم کش، فشردهسازی و کنترل دسترسی استفاده کرد.
این فایل ابزار قدرتمندی است، اما هر دستور آن میتواند بر بخش بزرگی از سایت اثر بگذارد. اشتباه در سینتکس یا منطق قوانین ممکن است باعث خطای 500، حلقه ریدایرکت یا از دسترس خارج شدن فایلهای سایت شود.
پیش از ویرایش باید نوع وبسرور، ماژولهای فعال و هدف دقیق هر دستور بررسی شود. تهیه نسخه پشتیبان، اعمال تغییرات مرحلهای و آزمایش صفحات مختلف نیز احتمال ایجاد مشکل را کاهش میدهد.
سؤالات متداول
فایل .htaccess چیست؟
.htaccess یک فایل پیکربندی برای اعمال تنظیمات سطح پوشه در Apache است. این فایل میتواند رفتار سرور را در زمینه ریدایرکت، دسترسی، URLها، کش و خطاها تغییر دهد.
فایل .htaccess کجاست؟
در بیشتر سایتها این فایل در پوشه اصلی مانند public_html قرار دارد. چون نام آن با نقطه شروع میشود، ممکن است لازم باشد نمایش فایلهای مخفی را در File Manager فعال کنید.
آیا حذف .htaccess سایت را خراب میکند؟
به تنظیمات سایت بستگی دارد. در وردپرس، حذف فایل ممکن است باعث خطای 404 در صفحات داخلی شود. قوانین کش، امنیت و ریدایرکت نیز ممکن است از بین بروند.
آیا Nginx از .htaccess استفاده میکند؟
خیر. Nginx فایل .htaccess را پردازش نمیکند و تنظیمات باید در فایل پیکربندی خود Nginx انجام شوند.
دلیل خطای 500 بعد از ویرایش .htaccess چیست؟
خطای سینتکس، دستور پشتیبانینشده، ماژول غیرفعال یا نبود مجوز لازم در AllowOverride از دلایل رایج هستند. بازگرداندن نسخه پشتیبان و بررسی Error Log اولین اقدامات مناسباند.
آیا .htaccess باعث افزایش سرعت سایت میشود؟
این فایل میتواند کش و فشردهسازی را تنظیم کند، اما خودش ابزار افزایش سرعت نیست. قوانین زیاد و پیچیده حتی ممکن است پردازش درخواستها را سنگینتر کنند.
آیا فایل .htaccess روی سئو تأثیر دارد؟
بله، بهصورت غیرمستقیم. ریدایرکتها، HTTPS، ساختار URL و مدیریت صفحات خطا بر سئوی فنی اثر دارند؛ اما وجود خود فایل عامل رتبهبندی نیست.
چگونه فایل .htaccess وردپرس را بازسازی کنیم؟
در بسیاری از نصبهای وردپرس میتوان پس از تهیه نسخه پشتیبان، وارد تنظیمات پیوندهای یکتا شد و بدون تغییر گزینهها روی ذخیره کلیک کرد. اگر دسترسی نوشتن وجود داشته باشد، وردپرس قوانین پایه را بازسازی میکند.
آیا میتوان چند فایل .htaccess داشت؟
بله. ممکن است در ریشه سایت و بعضی زیرپوشهها فایل جداگانه وجود داشته باشد. قوانین هر فایل معمولاً روی همان پوشه و زیرپوشههای آن اثر میگذارند.
آیا ویرایش .htaccess از داخل افزونه وردپرس امن است؟
این موضوع به اعتبار افزونه و سطح دسترسی آن بستگی دارد. حتی با افزونه معتبر نیز باید قبل از تغییر، نسخه پشتیبان تهیه و نتیجه بلافاصله آزمایش شود.












