مواقع

حل مشكلة لوحة تحكم ووردبريس, لا يمكن التحكم بالخيارات ويحول على الصفحة الرئيسية

قد تواجه مشكلة مع برنامج إدارة المحتوى 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]

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى