Cakephp 2.2 без mod_rewrite перенаправление неправильно

Я сделал все настройки, чтобы не использовать 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 а также AppController а также PagesController файлы).

В директории Model я получил Post.php и AppModel, как сказано в руководстве. А в папке View я создал папку Posts, а также файлы index.ctp и view.ctp.

Когда я набираю URL, как http://127.0.0.1/cake/index.php?url=/posts/ он идет в index.php главной папки Cake. Он перенаправляет туда! Если я изменю URL, например, на http://127.0.0.1/cake/index.php?url=/posts/view/1 (как учебник) то же самое. Что пошло не так в этой картине?

Моя среда - Debian 6.0-6 64bit. Apache2.2 (установлен с SO), CakePHP 2.2.3 и PHP 5.2.8 (или выше).

1 ответ

Вы уверены, что mod_rewrite включен и переписывает? Можете ли вы опубликовать содержимое ваших файлов.htaccess - того, что находится в каталоге верхнего уровня (т.е. htdocs), и того, что в вашем app/webroot реж? Ваш каталог верхнего уровня с app а также lib в этом. Я подозреваю, что ваш 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>
Другие вопросы по тегам