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

时间:2013-05-26 10:44:48

标签: php .htaccess url-rewriting yii subdirectory

我正在尝试运行放置在根目录的子文件夹中的Yii应用程序:

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

应用程序运行正常,网址为: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]

有什么建议吗?

真的很感谢你的帮助。

感谢。

3 个答案:

答案 0 :(得分:1)

您忘记在配置中设置basePath:

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

答案 1 :(得分:0)

'basePath' => 'yii_app/protected',

几乎是basePath的通用设置

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

答案 2 :(得分:0)

你不需要编辑.htaccess。您只需将Yii条目脚本(index.php)和默认的.htaccess从子目录移动到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