Yii框架:Yii应用程序在根子文件夹中


Yii Framework: Yii application in a root subfolder

我正在尝试运行一个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将显示网站的主页。

我试图放入忽略文件夹yii_app的root.htaccess文件规则,但没有解决问题。

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

有什么建议吗?

非常感谢你的帮助。

谢谢。

您忘记在配置中设置basePath:

<?php
return array(
    'basePath' => 'yii_app',
    ....
);
'basePath' => 'yii_app/protected',

basePath 的几乎通用设置

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

您不需要编辑.htaccess。您只需要将Yii条目脚本(index.php(和默认的.htacccess从子目录向上移动到webroot(以便它们直接位于public_html下(。一旦将index.php和.htaccess移动到根目录,所有web请求都将直接路由到index.php(而不是子目录(,从而消除url的/子目录部分。

移动文件后,您需要编辑index.php来更新对yii.php文件(在yii框架目录下(以及yii配置文件(main.php(的引用。最后,您需要将assets目录直接移动到webroot,因为默认情况下,yii希望assets目录与条目脚本位于同一位置。

这应该是你需要做的全部,但如果你需要更多的细节,我在这里完整地描述了方法:

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