0

mod_rewrite Apache 2.2 と CakePHP を使用しないようにすべての設定を行いました。

Apache2 が稼働中で、Cake も稼働しているようです。に行くhttp://127.0.0.1/cake/index.phpと、すべての緑色のタグが一緒に表示されます (PostgreSQL 9.1 を使用)。チュートリアルに従ってブログ プロジェクトを作成し、コントローラ ファイルを作成しました/var/www/cake/app/Controller/PostsController.php(またCakeController、 andAppControllerおよびPagesControllerファイルもあります)。

チュートリアルにあるように、Model dir で Post.php と AppModel を取得しました。そして View フォルダに Posts フォルダとファイル index.ctp と view.ctp を作成しました。

http://127.0.0.1/cake/index.php?url=/posts/Cakeメインフォルダーのindex.phpに行くようなURLを入力すると。そこにリダイレクトします!たとえば、URLをhttp://127.0.0.1/cake/index.php?url=/posts/view/1(チュートリアルのように)同じものに変更すると。この写真の何が問題だったのですか?

私の環境は Debian 6.0-6 64 ビットです。Apache2.2 (SO と共にインストール)、CakePHP 2.2.3 および PHP 5.2.8 (またはそれ以上)。

4

1 に答える 1

1

mod_rewriteそれがオンで書き換えていることは確かですか?あなたの .htaccess ファイルの内容を投稿できますか? 最上位のディレクトリ (つまり htdocs) にあるファイルと、あなたのディレクトリにあるファイルapp/webrootです。トップレベルのディレクトリは、その中applibあるものです。あなたRewriteRuleの は両方とも間違っていると思います。とにかく、これらのファイルを変更していなければ、間違いなく間違っています。:)中間 ファイルを変更しないでください.htaccess- にあるファイルですapp

これはすでにここで回答されており、CakeBook ではここで説明されています。しかし、私は個人的に少し異なるセットアップを使用しています。

/var/www/test.cake.lan/htdocs/.htaccess

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

/var/www/test.cake.lan/htdocs/app/.htaccess

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

/var/www/test.cake.lan/htdocs/app/webroot/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /app/webroot/index.php?url=$1 [QSA,L]
</IfModule>
于 2012-11-03T09:01:32.537 に答える