CakePHP 404 на существующем контроллере

(я действительно надеюсь, что приложил достаточное внимание к Google и строке поиска, прежде чем публиковать это)

Я начинаю с CakePHP и только что создал свою первую модель, контроллер и view.

Когда я просматриваю http: // localhost / ~ me / MyApp / Lists , я получаю 404, и я не уверен, почему

Вот мой контроллер

set('lists', $this->List->find('all'));
        }
    }
?>

. Я думаю, это проблема .htaccess, но когда я захожу на http: // localhost / ~ me / MyApp / app или http: // localhost / ~ me / MyApp / index Я получаю страницу ошибки «Отсутствует контроллер». Если бы оба этих URL-адреса могли указывать на фактический файл или каталог, то

Может кто-нибудь сказать мне, почему я получу эти 404 на своих контроллерах?

Обновление для пары комментариев, оставленных ниже (см. Ответ Лео)

Мой .htacces для корня приложения


   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

Мой .htaccess для веб-корня CakePHP


    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

1
задан Adam Ritenauer 31 August 2010 в 17:59
поделиться

3 ответа

Просмотрите app/webroot/index.php и убедитесь, что пути root, app и core определены правильно.

Еще один способ (хотя я сомневаюсь, что это ваша проблема) — добавить RewriteBase /~me ко всем вашим файлам htaccess (один находится в корневом каталоге вашего сайта, один в app и один в каталоге webroot).

1
ответ дан 2 September 2019 в 21:42
поделиться

Мне кажется, у вас не работает mod_rewrite должным образом. Создайте файл phpinfo.php, содержащий только следующее:

<?php echo phpinfo() ?>

Поместите его в webroot, затем откройте его как http://localhost/~me/MyApp/phpinfo.php

В браузере нажмите ctrl-f и найдите «переписать». Если его нет, то он не настроен.

0
ответ дан 2 September 2019 в 21:42
поделиться

Ваш URL должен быть http://localhost/~me/MyApp/lists со строчными буквами «списки». И URL-адрес http://localhost/~me/MyApp/app и http://localhost/~me/MyApp/index приведет к отсутствию страницы контроллера, потому что если вы используете . htaccess, все запросы будут обрабатываться app/webroot/index.php.

0
ответ дан 2 September 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: