يقوم قالب التطبيق المتقدم لـ Yii2 بإنشاء أقسام الواجهة الأمامية والخلفية في أدلة منفصلة. بشكل افتراضي، تظهر هذه الدلائل في عناوين URL، وهو ما قد يكون غير مرغوب فيه للحصول على عرض تقديمي نظيف وذو مظهر احترافي. تهدف هذه المقالة إلى إرشادك لإخفاء هذه الدلائل تمامًا.
1. تكوين الجذر .htaccess
في الدليل الجذر للمشروع (على سبيل المثال، Advanced/)، أنشئ ملف .htaccess والصق الكود التالي:
Options FollowSymlinks RewriteEngine On # Redirect admin requests to backend/web RewriteCond %{REQUEST_URI} ^/(admin) RewriteCond %{REQUEST_URI} !^/backend/web/(assets|css)/ RewriteRule ^.*$ backend/web/index.php [L] # Redirect all other requests to frontend/web RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css)/ RewriteCond %{REQUEST_URI} !index.php RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ frontend/web/index.php
2. طلب المكون
قم بإنشاء ملفمكونات/Request.php في الدليل المشترك وأضف الكود التالي:
namespace common\components;
class Request extends \yii\web\Request {
public $web;
public $adminUrl;
public function getBaseUrl(){
return str_replace($this->web, "", parent::getBaseUrl()) . $this->adminUrl;
}
public function resolvePathInfo(){
if($this->getUrl() === $this->adminUrl){
return "";
}else{
return parent::resolvePathInfo();
}
}
}
3. تكوين تطبيقات الواجهة الأمامية والخلفية
في الواجهة الأمامية/config/main.php والواجهة الخلفية/config/main.php، قم بتعديل مكونات الطلب وurlManager كما يلي:
الواجهة الأمامية /config/main.php
'request' => [
'class' => 'common\components\Request',
'web' => '/frontend/web'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false
]
backend/config/main.php
'request' => [ 'class' => 'components\Request'، 'الويب' => '/الواجهة الخلفية/الويب', 'adminUrl' => '/admin' ]، 'مدير URL' => [ 'enablePrettyUrl' => صحيح، 'showScriptName' => خطأ ]'request' => [
'class' => 'common\components\Request',
'web' => '/backend/web',
'adminUrl' => '/admin'
],
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false
]
الخطوة الاختيارية 4 (في حالة فشل الخطوات السابقة)قم بإنشاء ملف htaccess في دليل الويب وأضف الكود التالي:
RewriteEngine على أعد كتابة Cond %{REQUEST_FILENAME} !-f أعد كتابة Cond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]النتيجة
بعد تطبيق هذه التغييرات، يمكنك الوصول إلى موقع الويب الخاص بك على http:/ /localhost/yii2app وhttp://localhost/yii2app/admin دون ظهور أي مسارات أمامية أو خلفية في عناوين URL.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3