3

我正在尝试运行放置在根目录子文件夹中的 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 但没有解决问题的根 .htaccess 文件规则。

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

有什么建议么?

非常感谢您的帮助。

谢谢。

4

3 回答 3

1

您忘记在配置中设置 basePath:

<?php
return array(
    'basePath' => 'yii_app',
    ....
);
于 2013-05-26T10:56:36.917 回答
0

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

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

这应该是您需要做的所有事情,但是如果您需要更多详细信息,我会在此处完整描述该方法:

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

于 2014-04-20T04:55:05.087 回答
0
'basePath' => 'yii_app/protected',

basePath 的几乎通用设置

'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
于 2013-05-28T07:51:46.073 回答