اخیراً یکی از خوانندگان ما پرسید که آیا میتوان وردپرس را از بازنویسی کد سفارشی در فایل htaccess. جلوگیری کرد؟
وردپرس به همراه چندین افزونه تنظیمات سفارشی را به فایل پیکربندی .htaccess اضافه می کند. اگر کد سفارشی خود را به htaccess. اضافه کرده اید، ممکن است نگران باشید که آن را بازنویسی یا حذف کنید.
در این مقاله، ما به شما نشان خواهیم داد که چگونه وردپرس را از بازنویسی فایل htaccess. جلوگیری کنید.
چرا وردپرس فایل .htaccess را بازنویسی می کند؟
فایل htaccess شما یک فایل پیکربندی قدرتمند است که تنظیمات مهم وب سایت وردپرس شما را ذخیره می کند. این شامل قوانینی است که به سرور میزبان شما می گوید که چگونه سایت شما را مدیریت کند.
وردپرس از فایل .htaccess برای ذخیره تنظیمات پیوند دائمی خود استفاده می کند. هر زمان که پیوندهای دائمی خود را تغییر دهید یا بازسازی کنید، وردپرس به طور خودکار تنظیمات قدیمی را در htaccess. با تنظیمات جدید بازنویسی می کند.
برخی از افزونه های وردپرس نیز تنظیمات خود را در htaccess ذخیره می کنند. به عنوان مثال، افزونه W3 Total Cache فایل htaccess. شما را به منظور پیکربندی ابزارهای کش و بهینه سازی که بخشی از افزونه هستند، تغییر می دهد.
در نهایت، می توانید تغییرات سفارشی خود را در .htacess ایجاد کنید تا نحوه عملکرد وب سایت خود را کنترل کنید. به عنوان مثال، می توانید قوانین سفارشی را به فایل اضافه کنید که از ناحیه مدیریت شما محافظت می کند، سایت شما را در برابر هکرها ایمن نگه می دارد، تغییر مسیرها را تنظیم می کند، آدرس های IP مشکوک را ممنوع می کند و موارد دیگر.
برخی از کاربران نگران هستند که اگر قوانین سفارشی خود را به .htaccess اضافه کنند، ممکن است زمانی که وردپرس فایل را با تنظیمات جدید بازنویسی می کند، حذف شوند. سایر کاربران ترجیح می دهند .htaccess را به صورت دستی پیکربندی کنند و اصلاً اجازه ندهند وردپرس روی آن بنویسد.
با این گفته، بیایید نگاهی به نحوه جلوگیری از بازنویسی فایل htaccess وردپرس بیندازیم. به سادگی از لینک های سریع زیر استفاده کنید تا به بخش مورد نظر خود بروید.
چگونه وردپرس را از بازنویسی قوانین htaccess خود جلوگیری کنیم
خبر خوب این است که اگر بدانید فایل htaccess. چگونه کار می کند، می توانید مطمئن باشید که قوانین سفارشی شما بازنویسی نمی شوند.
به این دلیل که قسمت هایی از فایل که توسط وردپرس یا افزونه های شما تغییر می کند به وضوح مشخص شده اند. فقط مطمئن شوید که کدی را به آن مناطق اضافه نکنید.
کدهای داخل نشانگرهای وردپرس را تغییر ندهید
همانطور که قبلاً گفتیم، وردپرس از htaccess. برای ذخیره تنظیمات یک ساختار URL مناسب SEO استفاده می کند. هر زمان که تنظیمات پیوند ثابت خود را تغییر دهید، کدی که در فایل ذخیره می کند به طور خودکار بازنویسی و به روز می شود.
همانطور که در تصویر زیر می بینید، وردپرس این اطلاعات را بین دو نشانگر ذخیره می کند. # 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. سفارشی خود را بین آن نشانگرها اضافه نکنید.
ایجاد نشانگر برای کد سفارشی شما
در موارد نادر، یک پلاگین با رفتار بد ممکن است کد خارج از آن را تغییر دهد # BEGIN
و # END
نشانگرها با این حال، معمولاً کد موجود بین نشانگرهای مورد استفاده وردپرس یا سایر افزونه ها را تغییر نمی دهد.
اگر نگران این هستید که یک پلاگین با عملکرد نامناسب کد شما را بازنویسی کند، می توانید نشانگرهای خود را به فایل htaccess. اضافه کنید.
برای مثال می توانید تایپ کنید # BEGIN MyCustomCode
و # END MyCustomCode
نشانگرها در بالای فایل htaccess.، و سپس قوانین سفارشی خود را بین آن نشانگرها اضافه کنید.
اگر همچنین نیاز به اضافه کردن کد به انتهای htaccess. دارید، می توانید مجموعه متفاوتی از نشانگرها را در آنجا اضافه کنید. فقط مطمئن شوید که نام های مختلف را برای آنها انتخاب کنید. برای مثال، میتوانید از «MyCustomCodeTop» و «MyCustomCodeBottom» استفاده کنید.
چگونه وردپرس را از تغییر htaccess متوقف کنیم
حالا که فهمیدید htaccess چگونه کار می کند، شما می توانید مطمئن باشید که کد سفارشی شما توسط وردپرس یا افزونه های شما بازنویسی نمی شود.
با این حال، برخی از توسعه دهندگان و کاربران پیشرفته می خواهند وردپرس را از ایجاد هرگونه تغییر در htaccess. منع کنند.
برای مثال، آنها ممکن است بخواهند با تایپ تنظیمات به صورت دستی در htaccess. پیوندهای دائمی ایجاد کنند. در این صورت، آنها می خواهند با جلوگیری از ذخیره تنظیمات پیوند دائمی خود در فایل وردپرس، از درگیری جلوگیری کنند.
ما این کار را توصیه نمی کنیم مگر اینکه بدانید در حال انجام چه کاری هستید، زیرا می تواند منجر به عواقب غیرمنتظره شود. با این حال، این کار را می توان با تغییر مجوزهای فایل یا استفاده از کد انجام داد.
متوقف کردن وردپرس از تغییر htaccess با استفاده از مجوزهای فایل
یکی از راههای جلوگیری از تغییر htaccess در وردپرس این است که فایل را فقط خواندنی کنید. برای انجام این کار، باید مجوزهای فایل را با استفاده از یک سرویس گیرنده FTP یا مدیر فایل ارائه شده توسط ارائه دهنده هاست وردپرس خود تغییر دهید.
فایل htaccess. را در دایرکتوری اصلی نصب وردپرس خود خواهید یافت. در مرحله بعد، باید روی فایل کلیک راست کرده و “مجوزهای فایل” را انتخاب کنید.
با این کار یک پاپ آپ نمایش داده می شود که در آن می توانید ویژگی های فایل را تغییر دهید.
تنظیم پیشفرض 644 خواهد بود، اما میتوانید با تایپ مستقیم در فیلد «مقدار عددی» یا اطمینان از اینکه فقط کادرهای «خواندن» علامت زده شدهاند، آن را به 444 تغییر دهید.
پس از کلیک بر روی دکمه “OK”، فایل فقط خواندنی خواهد بود و قابل تغییر نیست.
البته این بدان معناست که شما نمی توانید روی فایل نیز بنویسید. هنگامی که می خواهید تغییراتی ایجاد کنید، باید مجوزهای فایل را به طور موقت به 644 برگردانید.
متوقف کردن وردپرس از تغییر htaccess با استفاده از کد
راه حل دیگر استفاده از یک قطعه کد است که به وردپرس اجازه می دهد در فایل htaccess. ننویسد. اگر میخواهید وردپرس را از تغییر htaccess. بدون مسدود کردن افزونههایتان جلوگیری کنید، مفید است.
توجه داشته باشید: ویرایش هر فایل اصلی وردپرس می تواند خطرناک باشد. حتی یک اشتباه کوچک می تواند باعث ایجاد خطاهای بزرگ در سایت شما شود. به همین دلیل است که ما این روش را فقط برای کاربران حرفه ای توصیه می کنیم.
به سادگی قطعه کد زیر را در انتهای فایل wp-config.php خود اضافه کنید. اگر به کمک نیاز دارید، لطفاً به راهنمای ما در مورد نحوه ویرایش فایل wp-config.php در وردپرس مراجعه کنید.
add_filter('got_rewrite', '__return_false');
پس از انجام این کار، وردپرس دیگر در فایل htaccess. نمینویسد.
هنگامی که وردپرس نمی تواند htaccess را تغییر دهد، پیام خطا نمایش داده می شود
اگر زمانی که .htaccess روی فقط خواندنی تنظیم شده است، سعی کنید تنظیمات پیوند ثابت خود را تغییر دهید، یک پیام خطا نمایش داده می شود.
در بالای تنظیمات » پیوندهای ثابت در صفحه، پیام “شما باید فایل htaccess. خود را اکنون به روز کنید.”
این به شما اطلاع می دهد که وردپرس قادر به تغییر فایل .htaccess نیست.
به طور معمول، این همان چیزی است که شما قصد دارید. با این حال، اگر می خواهید تنظیمات پیوند دائمی وردپرس را به htaccess. اضافه کنید، باید آن را به صورت دستی انجام دهید.
در پایین تنظیمات ≫ پیوندهای ثابت در صفحه، پیغام خطا دیگری را مشاهده خواهید کرد که می گوید فایل htaccess شما قابل نوشتن نیست. در زیر آن، قوانینی را خواهید دید که باید به htaccess. اضافه شوند.
اگر میخواهید این تنظیمات را اضافه کنید، باید مجوزهای فایل .htaccess را بهطور موقت به 644 برگردانید تا بتوان آن را ویرایش کرد. پس از آن، باید قوانین را بین نشانگرهای وردپرس BEGIN و END فایل قرار دهید و کدی را که قبلاً در آنجا وجود دارد جایگزین کنید.
وقتی کارتان تمام شد، به سادگی مقدار را به 444 برگردانید و فایل را ذخیره کنید. بار دیگر غیرقابل نوشتن خواهد بود.
امیدواریم این آموزش به شما کمک کرده باشد که یاد بگیرید چگونه وردپرس را از بازنویسی فایل htaccess. جلوگیری کنید. همچنین ممکن است بخواهید نحوه اضافه کردن اعلان فشار در وردپرس را بیاموزید و لیست تخصصی ما از بهترین افزونه ها و ابزارهای سئو وردپرس را بررسی کنید.
اگر این مقاله را دوست داشتید، لطفا در ما مشترک شوید کانال یوتیوب برای آموزش ویدیویی وردپرس. شما همچنین می توانید ما را در پیدا کنید توییتر و فیس بوک.
منبع: https://www.wpbeginner.com/wp-tutorials/how-to-stop-wordpress-from-overwriting-htaccess-file/