بازنویسی فایل .htaccess – به تازگی یکی از مخاطبان ما پرسش کرده است که آیا ممکن است از تغییرات سفارشی در فایل htaccess برای جلوگیری از تداخل با وردپرس استفاده کند.
وردپرس همراه با چندین افزونه، تنظیمات سفارشی را به فایل پیکربندی htaccess اضافه میکند. اگر تغییرات سفارشی خود را به فایل htaccess افزودهاید، ممکن است نگران این باشید که تغییرات و تنظیمات وردپرس را بازنویسی یا حذف کنید.
در این مقاله، به شما نشان خواهیم داد که چگونه میتوانید از تداخل بازنویسی فایل htaccess جلوگیری کنید.
مباحثی که در این آموزش به آنها میپردازیم شامل موارد زیر است:
چرا وردپرس فایل .htaccess را بازنویسی می کند؟
فایل htaccess یک پرونده پیکربندی قدرتمند است که تنظیمات مهم وبسایت وردپرس شما را نگهداری میکند. این حاوی قوانینی است که به سرور میزبانیتان میفهماند چگونه وبسایت شما را مدیریت کند.
وردپرس از فایل .htaccess برای ذخیره تنظیمات پیوندهای دائمی خود استفاده میکند. هر زمان که پیوندهای دائمی را تغییر میدهید یا بازسازی میکنید، وردپرس به طور خودکار تنظیمات قدیمی را در فایل htaccess با تنظیمات جدید بازنویسی میکند.
بعضی از افزونههای وردپرس هم تنظیمات خود را در فایل htaccess نگهداری میکنند. به عنوان مثال، افزونه W3 Total Cache فایل htaccess را تغییر میدهد تا ابزارهای کش و بهینهسازی خود را که جزء این افزونه است، پیکربندی کند.
در نهایت، شما میتوانید تغییرات سفارشی خود را در فایل .htacess ایجاد کنید تا نحوه عملکرد وبسایت خود را کنترل کنید. به عنوان مثال، قوانین سفارشی را به فایل اضافه کنید که از منطقه مدیریت شما محافظت کند، وبسایت شما را از حملات هکری محافظت نگهدارد، مسیرها را تغییر دهد، آدرسهای IP مشکوک را ممنوع کند و دیگر تنظیمات.
بعضی از افراد نگران هستند که اگر قوانین سفارشی خود را به فایل .htaccess اضافه کنند، ممکن است وقتی وردپرس تنظیمات جدید را بازنویسی میکند، آنها حذف شوند. دیگران ترجیح میدهند که .htaccess را به صورت دستی پیکربندی کنند و به وردپرس اجازه ندهند روی آن تغییراتی اعمال کند.
با این وجود، بیایید نگاهی به نحوه جلوگیری از بازنویسی فایل htaccess توسط وردپرس بیندازیم. به سادگی میتوانید از پیوندهای سریع زیر برای رفتن به بخش مورد نظرتان استفاده کنید:
– چگونه از بازنویسی قوانین htaccess توسط وردپرس جلوگیری کنیم
– چگونه وردپرس را از تغییرات در htaccess متوقف کنیم
– چگونه از بازنویسی قوانین htaccess توسط وردپرس جلوگیری کنیم
اخبار خوب اینجاست که اگر به شیوهی کارکرد فایل htaccess آشنا باشید، مطمئن باشید که قوانین سفارشی شما توسط بازنویسی تغییر نخواهند کرد.
این به دلیل آن است که بخشهایی از فایل که توسط وردپرس یا افزونههای شما تغییر مییابند، به وضوح شناسایی شدهاند. فقط اطمینان حاصل کنید که کدها را به این مناطق اضافه نمیکنید.
کدهای مرتبط با نشانگرهای وردپرس را تغییر ندهید.
همانطور که پیشتر اشاره شد، وردپرس از فایل htaccess برای ذخیره تنظیمات پیوندهای دائمی به منظور بهبود ساختار آدرسهای وب و بهرهوری در جستجوگرها استفاده میکند. هر زمان که تنظیمات پیوند دائمی را تغییر دهید، کدی که در این فایل ذخیره میشود، به صورت خودکار بازنویسی و بهروزرسانی میشود.
همانطور که در تصویر زیر مشاهده میکنید، وردپرس این اطلاعات را بین دو نشانگر # BEGIN WordPress و # END WordPress مشخص میکند.
به هشدار درون این نشانگرها توجه فرمایید:
دستورالعملها (خطوط) بین “BEGIN WordPress” و “END WordPress” بهصورت پویا تولید میشوند و تنها از طریق فیلترهای وردپرس باید اصلاح گردند. هر گونه تغییر در دستورالعملهای میان این نشانگرها بازنویسی میشود.
این به این معنی است که وردپرس هیچ کدی را که خارج از این نشانگرها اضافه میکنید، بازنویسی یا تغییر نخواهد داد. کاربران معمولاً کدهای سفارشی خود را در بالای فایل، قبل از نشانگر “# BEGIN WordPress” اضافه میکنند.
کد را در داخل نشانگرهای پلاگین خود تغییر ندهید
هنگامی که یک افزونه تنظیمات خود را در فایل .htaccess ذخیره میکند، آن را بین نشانگرهایی که شبیه به # BEGIN Plugin هستند، و نیز نشانگرهایی که شبیه به # END Plugin هستند، قرار میدهد.
به عنوان مثال، اگر افزونه W3 Total Cache را برای بهبود سرعت و عملکرد وبسایت خود نصب و پیکربندی کنید، در این صورت قوانین مربوطه را در فایل .htaccess بین نشانگرهای # BEGIN W3TC Browser Cache و # END W3TC Browser Cache اضافه میکند.
هر زمان که تنظیمات یک افزونه را تغییر میدهید، این قوانین در فایل htaccess. بازنویسی میشوند، بنابراین باید دقت کنید که قوانین سفارشی خود را بین این نشانگرها اضافه نکنید.
ایجاد نشانگر برای کد سفارشی شما
در موارد نادر، یک پلاگین با رفتار نامناسب ممکن است کد خارج از نشانگرهای خود را تغییر دهد. با این حال، به طور عمومی، کدهای موجود بین نشانگرهایی که وردپرس یا سایر افزونهها میسازند، تغییر نمیکنند.
اگر نگران هستید که یک پلاگین با عملکرد نامناسب کدهای شما را بازنویسی کند، میتوانید نشانگرهای خود را به فایل htaccess. اضافه کنید.
به عنوان مثال، میتوانید در بالای فایل htaccess. تایپ کنید # BEGIN MyCustomCode و سپس نشانگرهای خود را وارد کنید و در نهایت قوانین سفارشی خود را بین این نشانگرها اضافه کنید. # END MyCustomCode
اگر نیاز دارید کدی را به انتهای فایل htaccess. اضافه کنید، میتوانید از مجموعهای متفاوت از نشانگرها در آن استفاده کنید. اما حتماً مطمئن شوید که برای آنها نامهای مختلفی انتخاب کنید. به عنوان مثال، میتوانید از «MyCustomCodeTop» و «MyCustomCodeBottom» استفاده کنید.
چگونه وردپرس را از تغییر htaccess متوقف کنیم
حال که مکانیزم کارکرد فایل htaccess. را فهمیدید، میتوانید اطمینان حاصل کنید که کدهای سفارشی شما توسط وردپرس یا افزونههای شما بازنویسی نخواهند شد.
با این حال، برخی از توسعهدهندگان و کاربران پیشرفته ممکن است بخواهند وردپرس را از ایجاد هرگونه تغییر در فایل htaccess. محدود کنند.
به عنوان مثال، شاید شما بخواهید با دستی تنظیمات پیوندهای دائمی را در فایل htaccess. ایجاد کنید. در این موارد، شما میخواهید با جلوگیری از ذخیره تنظیمات پیوندهای دائمی در فایل وردپرس، از تداخل جلوگیری کنید.
هر چند ما توصیه نمیکنیم این کار را انجام دهید مگر اینکه به طور دقیق بدانید چه کاری انجام میدهید؛ زیرا این میتواند به عواقب غیرمنتظره منجر شود. با این وجود، این کار را میتوان با تغییر مجوزهای فایل یا استفاده از کدها انجام داد.
متوقف کردن وردپرس از تغییر htaccess. با استفاده از مجوزهای فایل
یکی از راههایی که میتوانید از تغییر فایل htaccess. در وردپرس جلوگیری کنید، این است که فایل را فقط به حالت خواندنی قرار دهید. برای انجام این کار، باید مجوزهای فایل را با استفاده از یک نرمافزار FTP یا از ابزار مدیریت فایل ارائه شده توسط میزبان وردپرستان، تغییر دهید.
فایل htaccess. را در پوشه اصلی نصب وردپرستان خواهید یافت. در مرحله بعد، باید روی فایل کلیک راست کرده و “مجوزهای فایل” را انتخاب کنید.
با این کار یک پاپ آپ نمایش داده می شود که در آن می توانید ویژگی های فایل را تغییر دهید .
تنظیم پیشفرض 644 خواهد بود، اما میتوانید با تایپ مستقیم در فیلد «مقدار عددی» یا اطمینان از اینکه فقط کادرهای «خواندن» علامت زده شدهاند، آن را به 444 تغییر دهید.
بعد از کلیک بر روی دکمه “OK”، فایل تنها به صورت خواندنی قابلیت دستکاری نداشته و تغییر پذیر نخواهد بود.
در این حالت، شما نمیتوانید به فایل نوشتهای اضافه کنید. زمانی که میخواهید تغییراتی اعمال کنید، باید مجوزهای فایل را بهطور موقت به ۶۴۴ بازگردانید.
متوقف کردن وردپرس از تغییر فایل htaccess. با استفاده از کد
یک روش دیگر استفاده از یک کد است که به وردپرس اجازه نمیدهد در فایل htaccess. تغییری ایجاد کند. اگر میخواهید از تغییرات فایل htaccess. توسط وردپرس جلوگیری کنید بدون اینکه افزونههایتان متأثر شوند، این روش مفید است.
توجه: ویرایش هر فایل اصلی وردپرس ممکن است خطرناک باشد. حتی یک اشتباه کوچک میتواند باعث ایجاد مشکلات جدی در وبسایت شما شود. به همین دلیل، ما این روش را فقط برای کاربران حرفهای توصیه میکنیم.
به سادگی کد زیر را در انتهای فایل wp-config.php خود اضافه کنید. اگر به کمک نیاز دارید، لطفاً به راهنمای ما در مورد نحوه ویرایش فایل wp-config.php در وردپرس مراجعه کنید:
add_filter('got_rewrite', '__return_false');
بعد از انجام این کار، وردپرس دیگر تلاشی برای تغییر فایل htaccess. انجام نمیدهد.
وقتی وردپرس نتواند تغییری در فایل htaccess. انجام دهد، یک پیام خطایی نمایش داده میشود.
در صورتی که زمانی که فایل htaccess. در حالت خواندنی تنظیم شده باشد، سعی کنید تنظیمات پیوندهای دائمی خود را تغییر دهید، یک پیام خطای “شما باید فایل htaccess. خود را اکنون بهروز کنید” در بالای صفحه تنظیمات » پیوندهای دائمی نمایش داده میشود.
این پیام به شما اعلام میکند که وردپرس قادر به تغییر فایل .htaccess. نمیباشد.
معمولاً این همان چیزی است که شما میخواهید. با این حال، اگر میخواهید تنظیمات پیوندهای دائمی وردپرس را به فایل htaccess. اضافه کنید، باید این کار را به صورت دستی انجام دهید.
این مطالب نیز برای شما مفید خواهند بود:
پایین صفحه تنظیمات » پیوندهای دائمی، شما یک پیام خطای دیگر را مشاهده خواهید کرد که به شما اطلاع میدهد که فایل .htaccess. شما قابل نوشتن نیست. در زیر این پیام، قوانینی را خواهید دید که باید به فایل htaccess. اضافه شوند.
اگر میخواهید این تنظیمات را اضافه کنید، باید مجوزهای فایل .htaccess را بهطور موقت به ۶۴۴ بازگردانید تا بتوانید آن را ویرایش کنید. سپس باید قوانین مورد نظر را بین نشانگرهای “BEGIN” و “END” وردپرس در فایل قرار داده و کدی را که قبلاً در آنجا وجود داشته، جایگزین نمایید.
بعد از انجام کارها، به سادگی مجوز فایل را به ۴۴۴ بازگردانید و تغییرات را ذخیره کنید. این کار باعث میشود فایل دوباره به حالت غیرقابل نوشتن بازگردانده شود.