我正在尝试运行放置在根目录的子文件夹中的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]
有什么建议吗?
真的很感谢你的帮助。
感谢。
答案 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目录与入口脚本位于同一位置。
这应该是您需要做的所有事情,但如果您需要更多细节,我会在这里完整地描述这种方法: