إذا لم يكن WPML يسمح لك بتحديد دلائل اللغة (مثل http://example.com/es/ للغة الأسبانية)، فذلك يكون ناجمًا عن محاولته الوصول لذلك المسار ووجود خطأ.

إليك ما ينبغي عليك إعداده كي تعمل دلائل اللغة بشكلٍ صحيح:

  1. تمكين إعادة كتابة المسار (سنصل إلى تلك الخطوة بعد دقيقة).

كما ترى، ليست هناك حاجة لإنشاء دلائل فعلية على الخادم. اللغات في الدلائل ممكنة من خلال إعادة كتابة المسار.

كيفية تحديد WPML ما إذا كان قادرًا على تمكين اللغات في دلائل

يحاول WPML الوصول إلى استدعاء اختباري للتحقق ما إذا كانت اللغات في الدلائل ستعمل أم لا. الاستدعاء الاختباري هو:

yourdomain/LANGUAGE/?____icl_validate_domain=1

على سبيل المثال، للتحقق ما إذا كانت اللغة الأسبانية ممكّنة لنطاقك الخاص (wpml.org)، سيكون الاستدعاء:

http://wpml.org/es/?____icl_validate_domain=1

عند إجرائك لهذا الاستدعاء، سيكون الرد صفحة فارغة. محتواها (والذي يمكنك رؤيته بالنظر إلى مصدر الصفحة):

<!--http://wpml.org-->

يقوم ذلك بإخبار WPML بأن WordPress يسمح بالوصول لبنية المسار هذه. إذا تم تمرير الاستدعاء، سيسمح WPML باستخدام اللغات بحسب الدلائل. وإلا، ستظهر لك رسالة ما والتي ستشرح (نوعًا ما) المشكلة.

إذا رأى WPML صفحة خطأ، سيقوم بتعطيل هذه الخاصية ويعرض رسالة الخطأ الحمراء هذه، مع التفسيرات المحتملة لسبب التعطيل.

هام: يقوم WPML بالوصول إلى مسار التحقق عن طريق إنشاء استدعاء fopen إليه. بشكلٍ عام، يشابه الأمر ما تقوم بفعله مستعرضات الإنترنت، إلا أن الأمر مختلف هنا. تأكد من تمكين fopen على خادمك. يمكنك إعداد ذلك من خلال إضافة ما يلي إلى ملف تكوين PHP الخاص بك لضمان عدم حظره:

SecFilterEngine Off

التأكد من تمكين WordPress لإعادة كتابة المسار

لتمكين إعادة كتابة المسار، سيقوم WordPress بإنشاء ملف يسمى htaccess. في المجلد الذي تم تثبيته فيه. سيقوم WordPress بإنشاء هذا الملف إذا كنت تستخدم أي شيء آخر غير المسارات الافتراضية. ينبغي أن يحتوي ذلك الملف على:

# BEGIN WordPress

<IfModule mod_rewrite.c>

  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteCond %{REQUEST_FILENAME} !-d

  RewriteRule . /index.php [L]

</IfModule>

# END WordPress

إذا كان غير موجود، حاول إنشاءه. إذا كان موجودًا ولكن فارغًا، قم بنسخ هذه المحتويات ثم حفظ الملف.

ما الذي تعنيه إمكانية إعادة كتابة المسارات؟

إعادة كتابة المسار آلية معقدة، تستخدم بشكلٍ موسع من قبل WordPress. ولكي يعمل ذلك، يحتاج خادم الويب (عادة، Apache) إلى أن يكون قادرًا على إعادة كتابة المسارات، وينبغي السماح لـ WordPress بإدارة عملية إعادة الكتابة.

في خادم الويب Apache، تقوم وحدة mod-rewrite بعملية إعادة كتابة المسار. فهي وحدة قياسية جدًا، والتي تكون ممكّنة في الوضع الافتراضي. إذا كنت تستخدم Apache ولا يمكنك تفعيل دلائل اللغة، تحقق من أن وحدة mod-rewrite نشطة مع موقعك. إذا كنت غير متأكد من كيفية فعل ذلك، قم بمراسلة مزودي خدمة الاستضافة التابع لهم. يمكنك استخدام هذه الصيغة:

Hey there!

A WordPress plugin that I want to use requires the mod-rewrite module enabled. Can you please check for me and tell me if mod-rewrite is enabled for my website? http://example.com

بافتراض أنها ممكّنة، سيحتاج WordPress الآن إلى أن يكون قادرًا على التحكم في قواعد كتابة المسار. ولكي يحدث ذلك، ينبغي أن يكون WordPress قادرًا على الكتابة إلى المجلد الذي تم تثبيته فيه.

مرة أخرى، إذا كنت تستخدم خادم الويب Apache، حاول التعرف على المستخدم الذي يعمل Apache تحت أمره، واسمح لذلك المستخدم بحق القراءة والكتابة إلى المجلد الذي تم تثبيت WordPress فيه. يمكنك فعل ذلك باستخدام برنامج FTP الخاص بك، أو من خلال shell، أو عبر البريد الإلكتروني:

Hello again,

I need another favor. I’ve installed WordPress in this directory:

YOUR_WP_INSTALL_DIRECTORY

Can you change the file permissions for the entire directory (recursively), so that the web server can both read and write there? I need WordPress to be able to write to some of the files.

بعد ذلك، تحقق من الأمر مرة أخرى.

إذا استمرت المشكلة، يسعدنا تشريفكم للمنتدى وفتح مشكلة جديد.

<!--http://wpml.org-->