Missing Method in PostsController
Error: The action posts is not defined in controller PostsController
Error: Create PostsController::users() in file: app/controllers/posts_controller.php.
Cuando aparece este problema también podemos ver en el código fuente de la pagina web que la url del formulario tiene posts dos veces:
/index.php/post/posts/
/app/webroot/index.php/post/posts/
La solución mas sencilla a este problema es que al acceder a la web no uses index.php:
http://localhost/posts/add
De esta forma funciona correctamente, pero si alguien pone index.php seguira fallando. Otra solucion es poner como DocumentRoot la raíz de cakephp y editar el archivo .htaccess también de la raiz de cakephp. Segun la documentación 3.3.4 Apache and mod_rewrite(and htaccess) hay que poner:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Esto no funciona, pero si pones:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule ^index\.php/(.*)$ app/webroot/$1 [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Funcionará de las dos formas:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Esto no funciona, pero si pones:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule ^index\.php/(.*)$ app/webroot/$1 [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Funcionará de las dos formas:
http://localhost/index.php/posts/add
http://localhost/posts/add.
No hay comentarios:
Publicar un comentario