2012-05-18 32 views
6

के लिए .htaccess और urlManager मुझे निम्नलिखित समस्या संरचना के साथ http://www.example.com और http://www.example.com/backend में बैकएंड होने के लिए एक Yii प्रोजेक्ट में मेरी .htaccess और urlManager को कॉन्फ़िगर करने में कठिनाई हो रही है। किसी भी मदद का स्वागत है। धन्यवाद।वाईआई: अलग बैकएंड और फ्रंटएंड

/assets 
/backend 
    /controllers 
    /config 
     main.php 
    /models 
    /views 
/common 
    /models 
/protected 
    /controllers 
    /config 
     main.php 
    /models 
    /views 
.htaccess 
backend.php 
index.php 

समाधान: @ bool.dev सब कुछ यह काम कर रहा की बहुत मदद के बाद, इसलिए मैं यहाँ हर जरूरत अंतिम फ़ाइल जोड़ रहा। दृश्यपटल में मैं यूआरएल के लिए पथ प्रारूप का उपयोग कर रहा हूँ और index.php

/backend/config/main.php

$backend=dirname(dirname(__FILE__)); 
Yii::setPathOfAlias('backend', $backend); 
return array(
'basePath' => $backend, 

'controllerPath' => $backend.'/controllers', 
'viewPath' => $backend.'/views', 
'runtimePath' => $backend.'/runtime', 

...); 

/protected/config/main.php

'urlManager'=>array(
    'urlFormat'=>'path', 
    'showScriptName'=>false, 
    'rules'=>array(
      '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
    ), 
), 
छुपा

.htaccess

Options +FollowSymLinks 
IndexIgnore */* 
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase /yii/example/ 
RewriteRule backend backend\.php [T=application/x-httpd-php] 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 
</IfModule> 

backend.php

$yii=dirname(__FILE__).'/../../yii/framework/yii.php'; 
$config=dirname(__FILE__).'/backend/config/main.php'; 
require_once($yii); 
Yii::setPathOfAlias('common', dirname(__FILE__).DIRECTORY_SEPARATOR.'common'); 
Yii::createWebApplication($config)->run(); 

index.php

$yii=dirname(__FILE__).'/../../yii/framework/yii.php'; 
$config=dirname(__FILE__).'/protected/config/main.php'; 
require_once($yii); 
Yii::setPathOfAlias('common', dirname(__FILE__).DIRECTORY_SEPARATOR.'common'); 
Yii::createWebApplication($config)->run(); 
+0

क्या आप मुझे बता सकते हैं कि आपने मॉड्यूल का बैकएंड क्यों नहीं किया? –

+0

मैं क्यूईंग द्वारा वर्णित वाईआई परियोजना साइट http://www.yiiframework.com/wiki/155/the-directory-structure-of-the-yii-project-site/ की निर्देशिका संरचना का पालन करना चाहता था। – Puigcerber

+0

क्या आपके पास बैकएंड फ़ोल्डर के अंदर बैकएंड के लिए अलग एचटीएसीएसी नहीं है ?, उदाहरण के लिए बाहरी एचटीएसीएसी बनाएं, और बैकएंड के अंदर एक और एचटीएसीएसी बनाएं, उदाहरण के लिए.com/backend –

उत्तर

6

this wiki article by Qiang के अनुसार, आप निम्न परिवर्तन कर सकता है और यह काम करना चाहिए:

// backend.php: 
require('path/to/yii.php'); 
Yii::createWebApplication('backend/config/main.php')->run(); 
अपने बैकएंड के config में

तो (यानी बैकएंड/config/मुख्य .php):

$backend=dirname(dirname(__FILE__)); 
$frontend=dirname($backend); 
Yii::setPathOfAlias('backend', $backend); 

return array(
    'basePath' => $backend, 

    'controllerPath' => $backend.'/controllers', 
    'viewPath' => $backend.'/views', 
    'runtimePath' => $backend.'/runtime', 

    'import' => array(
     'backend.models.*', 
    ), 
    // ... other configurations ... 
); 

लेकिन इसके लिए काम करने के लिए हमें example.backp को backend.php पर रूट करने के लिए मुख्य। Htaccess की आवश्यकता है, जिसे मैंने अभी तक नहीं समझा है।

संपादित करें:
बस पता लगा:

RewriteEngine On 
RewriteBase /projectroot/ 
RewriteRule backend backend\.php [T=application/x-httpd-php] 

RewriteBase मेरे लिए महत्वपूर्ण था, backend.php रूप नहीं मिला था जब मैं सही projectroot नहीं दिया था, मूल रूप से यह निर्देशिका होनी चाहिए जहां आपके पास प्रविष्टि स्क्रिप्ट backend.php हो।

+0

मुझे बताएं कि यह आपके लिए कैसे काम करता है –

+0

अभी तक कुछ भी नहीं, वह गाइड पहला था जिसे मैंने पालन करने का प्रयास किया था लेकिन इसे काम करने के लिए कोई रास्ता नहीं है ... – Puigcerber

+0

वास्तव में मैंने आपकी निर्देशिका संरचना के साथ प्रयास किया, और यह काम किया, तो क्या आप मुझे सही त्रुटियां बता सकते हैं? या आप जो समस्याएं प्राप्त कर रहे हैं? –

संबंधित मुद्दे