سؤال

أحاول تنفيذ التوجيه في CakePhP. أريد أن يتم تعيين عناوين URL مثل هذا ...

www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about

لذلك ، كتبت في ملف config/routes.php ..

Router::connect('/:action', array('controller' => 'nodes'));

الآن ، حصلت على الشيء ولكن عندما أنقر على الروابط ، يظهر عنوان URL في المتصفح مثل www.example.com/nodes/main www.example.com/nodes/about

هل هناك طريقة يمكنني من خلالها الحصول على عناوين URL لتظهر بالطريقة التي يتم بها توجيهها؟ سيكون الإعداد في .htaccess أو httpd.conf سهلاً - لكن لا يمكنني الوصول إلى ذلك.

تحياتي فيكرام

هل كانت مفيدة؟

المحلول

هذا يجب أن يعمل:

Router::connect('/main', array('controller' => 'nodes', 'action' => 'main'));
Router::connect('/about', array('controller' => 'nodes', 'action' => 'about'));

يمكنك أيضًا القيام بشيء أكثر قوة ، مثل هذا:

$actions = array('main','about');
foreach ($actions as $action){
   Router::connect('/$action', array('controller' => 'nodes', 'action' => '$action'));
}

نصائح أخرى

في الأساس إذا تم إنشاء روابطك باستخدام HTML Helper ، مع التنسيق التالي:

<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?>

ثم ستقوم الكعكة بتحويل الروابط بشكل صحيح إلى www.example.com/main

ولكن إذا كانت روابطك

<?php echo $this->Html->link('your link', '/nodes/main/');?>

سوف يشيرون إلى www.example.com/nodes/main

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top