فایل .htaccess مجموعهای از دستورهای پیکربندی محلی در Apache و بعضی وبسرورهای سازگار است. Nginx این فایل را نمیخواند؛ بنابراین کپیکردن قواعد آن روی هر هاستی نتیجه یکسان ندارد. در وردپرس، بخشی از قواعد پیوند یکتا ممکن است در این فایل تولید شود و تغییر نادرست آن میتواند خطای 500، حلقه redirect یا اختلال دسترسی بسازد.
فایل کجاست و چرا دیده نمیشود؟
در نصب معمول وردپرس، .htaccess در ریشه همان نصب و کنار فایلهایی مثل wp-config.php قرار میگیرد. نقطه ابتدای نام باعث میشود بعضی مدیرهای فایل آن را مخفی کنند. مسیر نصب زیرپوشهای، multisite یا document root سفارشی را با ریشه حساب میزبانی اشتباه نگیرید. چند فایل .htaccess در مسیرهای والد و فرزند نیز ممکن است با هم اثر بگذارند.
پیش از ویرایش
- نوع وبسرور و مجازبودن directiveها را از میزبان تأیید کنید؛ AllowOverride تعیین میکند چه تنظیمی در فایل محلی پذیرفته میشود.
- از فایل نسخه قابل بازیابی خارج از مسیر عمومی بگیرید و محتوای فعلی را ثبت کنید.
- منظور هر قاعده را مشخص کنید؛ یک بسته بزرگ «کد افزایش امنیت و سرعت» را بدون بررسی وارد نکنید.
- هر بار یک تغییر بدهید و URL عادی، ورود و مسیرهای داخلی را آزمایش کنید.
قواعد وردپرس و پیوند یکتا
برای بازسازی بخش تولیدشده، تنظیمات ← پیوندهای یکتا در وردپرس راهنمای مناسب همان نصب را نشان میدهد. قواعد یک نصب ریشه را برای multisite یا زیرپوشه جایگزین نکنید. متن میان نشانگرهای BEGIN WordPress و END WordPress ممکن است با ذخیره تنظیمات بازنویسی شود؛ تغییر سفارشی باید با آگاهی از مدیر تولیدکننده در محل مناسب قرار گیرد.
خطای 500 پس از تغییر
ابتدا نسخه قبل را برگردانید و لاگ Apache را در همان زمان بخوانید. directive نامعتبر، ماژول غیرفعال یا مجوز نادرست میتواند علت باشد. apachectl configtest برای پیکربندی کلی مفید است، اما کافی نیست که همه .htaccessهای مسیر درخواست را پیشاپیش تأیید کند؛ همان URL باید واقعاً درخواست شود. حذف کل فایل نیز ممکن است قواعد امنیت، redirect یا برنامه دیگر را از بین ببرد.
redirect و امنیت را جدا بسنجید
برای تغییر مقصد URL، تطابق دقیق، query string، کد پاسخ و نبود زنجیره یا حلقه را کنترل کنید. redirect عمومی همه صفحههای نامرتبط به خانه، پاسخ محتوایی مناسبی نیست. همچنین جلوگیری از فهرست پوشه یا محدودکردن فایل حساس، جای احراز هویت، وصله و بکاپ را نمیگیرد. اگر دسترسی پیکربندی اصلی سرور را دارید، Apache معمولاً تنظیم مرکزی را به فایلهای محلی ترجیح میدهد.
مطالعه مرتبط
- رفع خطای 413 Request Entity Too large در وردپرس
- آموزش رفع خطای با عرض پوزش شما اجازه دسترسی به این برگه را ندارید در وردپرس
منابع و مستندات
بازبینی محتوا و منابع: ۲۶ مهر ۱۴۰۵.