1

ここで同様の問題を見つけましたが、解決策が見つかりませんでした。基本的に、サブディレクトリ 'localhost/dyod' に既存の cakephp アプリケーションをインストールしました。htaccess ファイルを編集しないと、アプリが dyod コントローラーを探しているというエラーが表示されるので、どうやら uri がオフになっているようです。rewritebase を htaccess ファイル (/dyod/) に追加すると、すべてのアセットの URL がオフになり、webroot が含まれなくなります。また、まだ dyod コントローラーを探しています。私のhtaccessファイルはここからコピーされます。

前もって感謝します。

4

3 に答える 3

2

これは私のグーグル検索の一番上にあり、これらの回答は役に立たなかったので、これに追加します。

CakePHP は、すべて変更が必要な 3 つの .htaccess ファイルを使用します。一番上の CakePHP ディレクトリに 1 つ、app/ に 1 つ、app/webroot に 1 つ。これらのそれぞれに次を追加します。

RewriteBase /path/to/dir/

私のマシンには次の構造があります: ~/Sites/site1 ~/sites/site2/admin

これらの各ディレクトリには、個別に CakePHP がインストールされています。

CakePHP を site1 と site2/admin にインストールします。これらのサイトの URL は次のとおりです。

http://localhost/~me/site1
http://localhost/~me/site2/admin

このエラーが発生し続けました: 要求された URL /home/me/Sites/site1/app/webroot/index.php がこのサーバーで見つかりませんでした。

これらを取得するために、3 つの .htaccess ファイルを変更しました。

site1 .htaccess:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteBase /~me/site1/
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

site1/app .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /~me/site1/app/
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

site1/app/webroot .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /~me/site1/app/webroot/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

それでおしまい。この 3 つの変更だけで十分です。

于 2014-07-22T15:51:26.820 に答える
0

このページでは、「通常の」場所とは異なる場所にCakePHPをインストールする方法について説明します。

http://book.cakephp.org/2.0/en/installation/advanced-installation.html

基本的には、webroot/index.phpファイル内の3つの値を変更するだけです。.htaccessファイルを編集する必要はありません。私は今行っているすべてのサイトのサブディレクトリにCakePHPをインストールしており、.htaccessファイルに触れる必要はありませんでした。の値を変更するだけでwebroot/index.php、準備完了です。

例-私のディレクトリ構造:

-cakephp
    -cakephp_2_2
    -cakephp_1_3
    -cakephp_2_1_beta
    - ...etc
-public_html
    -mysite1
        -Config
        -Console
        -Controller
        -Lib
        - ...etc
        -View
        -webroot
    -mysite2
        -Config
        -Console
        -Controller
        -Lib
        - ...etc
        -View
        -webroot

私のウェブルートでは:

if (!defined('ROOT')) {
define('ROOT', DS.'home'.DS.'myusername'.DS.'public_html');
}


if (!defined('APP_DIR')) {
define('APP_DIR', 'mysite1');
}


define('CAKE_CORE_INCLUDE_PATH', DS.'home'.DS.'myusername'.DS.'cakephp'.DS.'cakephp_2_2'.DS.'lib');
于 2012-08-14T17:33:44.683 に答える
0

.htaccess ファイルに RewriteBase ディレクティブを追加します。

RewriteBase /path/to/cake/app

あなたの場合、これは次のようになります。

RewriteBase /path/to/dyod

于 2012-08-14T17:08:32.230 に答える