2013-05-26 3 views
3

Я пытаюсь запустить приложение Yii помещается в подпапках корня:Yii Framework: приложение Yii в корневой вложенной

-> public_html 
----> yii_app 
--------> index.php 
--------> .htaccess 
--------> protected 
etc.. 

Приложение работает отлично с URL: http://www.site.com/yii_app Однако, более глубокие и контроллеры действия перенаправляют меня на http://www.site.com Например: http://www.site.com/yii_app/controller1/action1 покажет домашнюю страницу сайта.

Я попытался поместить в корневые файлы .htaccess правила, которые игнорируют папку yii_app, но не решают проблему.

RewriteEngine on  
RewriteCond %{REQUEST_URI} "/yii_app/" 
RewriteRule (.*) $1 [L] 

Любые предложения?

Очень понравилась бы ваша помощь.

Спасибо.

+0

Я думаю, вы должны использовать создание URL для создания работы УРК, проверить это : http://www.yiiframework.com/doc/guide/1.1/en/topics.url#creating-urls – Abudayah

ответ

1

Вы забыли установить BasePath в вашей конфигурации:

<?php 
return array(
    'basePath' => 'yii_app', 
    .... 
); 
+0

Я пробовал, но дал следующую ошибку: Неустранимая ошибка: исключить исключение «CException» с сообщением «Путь к базе приложений» «yii_app» не является допустимым каталогом. ' Значение basePath было установлено в dirname (__ FILE__). DIRECTORY_SEPARATOR. '..', – TechMafioso

+0

Thats wrong, pls не делают такой код без тестирования –

0
'basePath' => 'yii_app/protected', 

Почти универсальный параметр для BasePath

'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..', 
+0

Вот что я сейчас имею в файле конфигурации main.php. Однако любые более глубокие контроллеры и их действия возвращают меня на домашнюю страницу. Единственным рабочим контроллером/действием является тот, который я установил как значение по умолчанию. – TechMafioso

0

Вам не нужно редактировать .htaccess. Вам просто нужно переместить скрипт ввода Yii (index.php) и по умолчанию .htaccess из подкаталога в webroot (чтобы они находились непосредственно под public_html). Как только вы перемещаете index.php и .htaccess в корневой каталог, все веб-запросы будут направляться непосредственно в index.php (а не в подкаталог), тем самым исключая часть/подкаталога URL-адреса.

После перемещения файлов вам нужно будет отредактировать index.php, чтобы обновить ссылки на файл yii.php (в каталоге Yii framework), а также файл конфигурации Yii (main.php). Наконец, вам нужно будет переместить каталог активов непосредственно в webroot, поскольку по умолчанию Yii ожидает, что каталог ресурсов будет находиться в том же месте, что и сценарий ввода).

Это должно быть все, что вам нужно сделать, но если вам нужно больше информации, я опишу подход полностью здесь:

http://muhammadatt.tumblr.com/post/83149364519/modifying-a-yii-application-to-run-from-a-subdirectory