【问题标题】:CakePHP in nested folder with wrong routes嵌套文件夹中的 CakePHP 路径错误
【发布时间】:2012-05-26 04:35:17
【问题描述】:

我在localhost/domains/mydomain/ 中安装了 cakePHP,在localhost/ 中安装了 .htaccess 文件,其中包含以下内容:

RewriteEngine On
RewriteRule ^$ /domains/mydomain/app/webroot/ [L]
RewriteRule (.*) /domains/mydomain/app/webroot/$1 [L]

所以我的网站可以通过localhost/ 地址访问。问题是我网站上的所有链接都指向localhost/domains/mydomain/。有没有办法让 Cake 认为它在 localhost/ 文件夹中,这样我就可以摆脱 URL 中丑陋的 domains/mydomain/ 了?

【问题讨论】:

    标签: cakephp url-rewriting routes


    【解决方案1】:

    不幸的是,没有人能回答我的问题,所以我不得不使用解决方法。为了帮助其他几代人,我做了以下事情:

    我将我的 webroot 文件夹移动到 webserver 的根文件夹:

    webhost_root(localhost)
    |- domains
    |  |- mydomain
    |     |- app
    |     |- cake
    |     |- plugins
    |     |- vendors
    |-webroot
    

    然后我不得不调整 webroot/index.php 以查看我的蛋糕应用程序的域/mydomain/app:

    if (!defined('ROOT')) {
        define('ROOT', (dirname(dirname(__FILE__))).'/domains/mydomain/');
    }
    
    if (!defined('APP_DIR')) {
        define('APP_DIR', 'app/');
    }
    

    只剩下 webhost_root 中的 .htaccess:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?mydomain(.*)$
    RewriteRule ^$ webroot/    [L]
    RewriteCond %{HTTP_HOST} ^(www\.)?mydomain(.*)$
    RewriteRule (.*) webroot/$1    [L]
    

    希望对某人有所帮助。

    【讨论】:

      【解决方案2】:

      一年后,我找到了正确的解决方案。只需将其放入核心或引导文件中即可完成。

      Configure::write('App', array('base' => ''));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-20
        • 2020-03-16
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 2018-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多