حل مشكلة لوحة تحكم ووردبريس, لا يمكن التحكم بالخيارات ويحول على الصفحة الرئيسية
قد تواجه مشكلة مع برنامج إدارة المحتوى WordPress , وهي لا يمكن التحكم بالخيارات ويحول على الصفحة الرئيسية أو صفحة خطأ مثلا عند الرغبة في إضافة مكون إضافي جديد أو قالب جديد أو حتى محاولة إضافة مقال جديد لا يمكنك ذلك.
قد تواجه مشكلة مع برنامج إدارة المحتوى WordPress , وهي لا يمكن التحكم بالخيارات ويحول على الصفحة الرئيسية أو صفحة خطأ مثلا عند الرغبة في إضافة مكون إضافي جديد أو قالب جديد أو حتى محاولة إضافة مقال جديد لا يمكنك ذلك.
المشكلة تكمن في ملف .htaccess وهو الملف المهم لتشغيل ووردبريس وينبغي أن يكون نظيف وجديد ويحوي الأكواد المناسبة الصحيحة.
ماهو ملف ملف .htaccess
هو عبارة عن ملف نصي يعمل على تهيئة بعض الجوانب من موقع الويب مثل إدارة IP وإعادة التوجيه، وحماية الموقع من الاختراق، كما يُستخدم لتحديد آلية تشغيل الخادم، والوصول إلى النص التشعبي hypertext access ويتضمن الملف القواعد ذات الصلة بالبنية الأساسية للروابط الدائمة Permalinks.
.htaccess
الملفات تمامًا إذا كان لديك حق الوصول إلى ملف تكوين الخادم الرئيسي httpd. يؤدي استخدام .htaccess
الملفات إلى إبطاء خادم Apache http. .htaccess
من الأفضل تعيين أي توجيه يمكنك تضمينه في ملف في Directory
كتلة، حيث سيكون له نفس التأثير مع أداء أفضل.متى (لا) تستخدم ملفات .htaccess
بشكل عام، يجب عليك استخدام .htaccess
الملفات فقط عندما لا يكون لديك حق الوصول إلى ملف تكوين الخادم الرئيسي. هناك، على سبيل المثال، مفهوم خاطئ شائع مفاده أن مصادقة المستخدم يجب أن تتم دائمًا في .htaccess
الملفات، وفي السنوات الأخيرة، ظهر مفهوم خاطئ آخر مفاده أن mod_rewrite
التوجيهات يجب أن تدخل في .htaccess
الملفات. هذا ببساطة ليس هو الحال. يمكنك وضع تكوينات مصادقة المستخدم في تكوين الخادم الرئيسي، وهذه في الواقع هي الطريقة المفضلة للقيام بالأشياء. وبالمثل، mod_rewrite
تعمل التوجيهات بشكل أفضل، في كثير من النواحي، في تكوين الخادم الرئيسي.
.htaccess
يجب استخدام الملفات في الحالة التي يحتاج فيها موفرو المحتوى إلى إجراء تغييرات التكوين على الخادم على أساس كل دليل، ولكن ليس لديهم حق الوصول إلى الجذر على نظام الخادم. في حالة عدم رغبة مسؤول الخادم في إجراء تغييرات متكررة على التكوين، فقد يكون من المرغوب فيه السماح للمستخدمين الفرديين بإجراء هذه التغييرات في .htaccess
الملفات بأنفسهم. وينطبق هذا بشكل خاص، على سبيل المثال، في الحالات التي يستضيف فيها موفرو خدمة الإنترنت مواقع مستخدمين متعددة على جهاز واحد، ويريدون أن يتمكن المستخدمون لديهم من تغيير التكوين الخاص بهم.
.htaccess
ومع ذلك، بشكل عام، يجب تجنب استخدام الملفات عندما يكون ذلك ممكنًا. أي تكوين قد تفكر في وضعه في .htaccess
ملف، يمكن إجراؤه بنفس الفعالية في <Directory>
قسم في ملف تكوين الخادم الرئيسي الخاص بك.
هناك سببان رئيسيان لتجنب استخدام .htaccess
الملفات.
أول هذه العناصر هو الأداء. عندما AllowOverride
يتم تعيينه للسماح باستخدام .htaccess
الملفات، سيبحث httpd في كل دليل عن .htaccess
الملفات. وبالتالي، فإن السماح .htaccess
بالملفات يؤدي إلى فشل الأداء، سواء كنت تستخدمها بالفعل أم لا! كما .htaccess
يتم تحميل الملف في كل مرة يتم فيها طلب مستند.
لاحظ أيضًا أن httpd يجب أن يبحث عن .htaccess
الملفات في كافة الأدلة ذات المستوى الأعلى، حتى يكون لديه مجموعة كاملة من التوجيهات التي يجب أن يطبقها. (راجع القسم الخاص بكيفية تطبيق التوجيهات .) وبالتالي، إذا تم طلب ملف من الدليل /www/htdocs/example
، فيجب أن يبحث httpd عن الملفات التالية:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
وهكذا، مقابل كل وصول إلى ملف من هذا الدليل، هناك 4 عمليات وصول إضافية إلى نظام الملفات، حتى لو لم يكن أي من هذه الملفات موجودًا. (لاحظ أن هذا لن يحدث إلا إذا .htaccess
تم تمكين الملفات لـ /
، وهذا ليس هو الحال عادةً.)
في حالة RewriteRule
التوجيهات، في .htaccess
السياق، يجب إعادة تجميع هذه التعبيرات العادية مع كل طلب إلى الدليل، بينما في سياق تكوين الخادم الرئيسي يتم تجميعها مرة واحدة وتخزينها مؤقتًا. بالإضافة إلى ذلك، فإن القواعد نفسها أكثر تعقيدًا، حيث يجب على المرء أن يتغلب على القيود التي تأتي مع سياق كل دليل و mod_rewrite
. راجع دليل إعادة الكتابة لمزيد من التفاصيل حول هذا الموضوع.
والاعتبار الثاني هو الاعتبار الأمني. أنت تسمح للمستخدمين بتعديل تكوين الخادم، مما قد يؤدي إلى تغييرات لا يمكنك التحكم فيها. فكر جيدًا فيما إذا كنت تريد منح المستخدمين هذا الامتياز. لاحظ أيضًا أن منح المستخدمين امتيازات أقل مما يحتاجون إليه سيؤدي إلى طلبات دعم فني إضافية. تأكد من إخبار المستخدمين بوضوح بمستوى الامتيازات التي منحتها لهم. إن تحديد ما قمت بضبطه بالضبط AllowOverride
، وتوجيههم إلى الوثائق ذات الصلة، سيوفر عليك الكثير من الارتباك لاحقًا.
لاحظ أنه يكافئ تمامًا وضع .htaccess
ملف في دليل /www/htdocs/example
يحتوي على توجيه، ووضع نفس التوجيه في قسم الدليل <Directory "/www/htdocs/example">
في تكوين الخادم الرئيسي الخاص بك:
.htaccess
إملأ /www/htdocs/example
:
محتويات ملف htaccess في /www/htdocs/example
Contents of .htaccess file in /www/htdocs/example
AddType text/example ".exm"
قسم من httpd.conf
الملف الخاص بك
Section from your httpd.conf
file
<Directory "/www/htdocs/example"> AddType text/example ".exm" </Directory>
ومع ذلك، فإن وضع هذا التكوين في ملف تكوين الخادم الخاص بك سيؤدي إلى أداء أقل، حيث يتم تحميل التكوين مرة واحدة عند بدء تشغيل httpd، بدلاً من كل مرة يتم فيها طلب ملف.
.htaccess
يمكن تعطيل استخدام الملفات تمامًا عن طريق تعيين AllowOverride
التوجيه على none
:
AllowOverride None
حل مشكلة لا يمكن التحكم بالخيارات ويحول على الصفحة الرئيسية
لحل المشكلة المذكورة أعلاه ينبغي عليك حذف محتويات الملف (مع الاحتفاظ بنسخة احتياطية منه للرجوع له وقت الحاجة), وبعد الحذف انسخ الكود التالي وضعه به:
# BEGIN WordPress
# التعليمات (الأسطر) بين “BEGIN WordPress” و “END WordPress”
# تم إنشاؤها ديناميكيًا، ويجب تعديلها فقط من خلال مرشحات ووردبريس (WordPress Filters).
# أي تغييرات على التعليمات بين هذه العلامات سيتم الكتابة فوقها.
<IfModule mod_rewrite.c>
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]
</IfModule># END WordPress
# php — BEGIN cPanel-generated handler, do not edit
# Set the “ea-php81” package as the default “PHP” programming language.
<IfModule mime_module>
AddHandler application/x-httpd-ea-php81___lsphp .php .php8 .phtml
</IfModule>
# php — END cPanel-generated handler, do not edit
<files wp-config.php=””># protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
</files>
# protect from sql injection
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
اكتشاف المزيد من إشراق العالم
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.