Come mai Zend mi riconosce solo l'index??

Salve a tutti, stò costruendo un'applicazione in zend framework, ho messo tutta l'applicazione in una sottodirectory però lo scheda dell'applicazione è quello tra i più tipici, nel public l'index, fouri le cartelle library application che contiene anche la folder controller model views ecc... Se nell'index scrivo il percorso fino a public, mi apre il contenuto di indexController insieme a quello che ho nella view, l'indexController è il seguente:

<?

class IndexController extends Zend_Controller_Action {

    public function init() {

        //$front = Zend_Controller_Front::getInstance();

        }             /*     * Questa è la action chiamata di default     */

        public function indexAction() {

            $this->view->headTitle( 'Index' );

            $this->view->cont = 'Ciao';

            }

        public function provaAction() {

            $this->view->headTitle( 'Index' );

            $this->view->cont = 'Ciao';

            }

}

 se quindi provo ad accedere a provaController, niente, mi dà file not found errore 404, come mai cosa non và? Se devo postare altri file come il config.ini fatemi sapere.. grazie

saluti

inviato 5 anni fa
superson_16
X 0 X

Non ho capito la struttura della tua applicazione.

Contestualmente chiedo: hai configurato correttamente il tuo file htaccess e le rewrite rule?

Hai già visionato la guida presente qui in phpnews?

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Cia marioS, scusami se ti rispondo solo adesso, ma mi apsettavo una notifica sulla mia email di base, mentre oggi mi sono accorto della notifica del tuo post sull'altra mail che non controllo mai, cmq la struttura del sito è così:

PATH:   www.domiinio.it/siti/sito_zend/

in sito_zend risiede questa struttura:

application

   -configs

        -aplication.ini

   -controllers

        -ArticoloController.php

   -NewsController.php

   - ecc....

   -forms

   -FormsUser.php

   -ecc...

   -models

   -Articolo.php

   -Utente.php

   -views

   -helper

   -scripts

         -articolo

        -create.phtml

        -index.phtml

             -ecc.....

library

   -zend

   - /* LE LIBRERIE ZEND */

public

   -css

   -js

   -.htaccess

   -index.php

Il file .htaccess in public ha questo contenuto:

SetEnv APPLICATION_ENV production

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]

RewriteBase /siti/sito_zend/public/

Che ne pensi?

          

risposto 5 anni fa
superson_16
X 0 X

Il rewritebase mettilo all'inizio, imposta l'applicazione su development finchè sviluppi, poi passi il tutto in produzione. Ti aiuterà!

Ciao

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Grazie mille per la risposta veloce, ho fatto come dici tu, ma non và, sempre error 404 mi dà aprendo questo link:

http://www.supersonico.org/siti/sito_zend/public/Index/prova

oppure questo

http://www.supersonico.org/siti/sito_zend/public/Articolo/index

non sò che gli prende

risposto 5 anni fa
superson_16
X 0 X

Puoi farci vedere come è ora il tuo htaccess? E dove lo hai inserito?

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Adesso è così:

SetEnv APPLICATION_ENV development

RewriteBase /siti/sito_zend/public/

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]

ho provato ad invertire anche SetEnv con RewriteBase / ecc...

ma cmq niente...

risposto 5 anni fa
superson_16
X 0 X

Nada soluzioni MarioS ?!?!!? :-(

risposto 5 anni fa
superson_16
X 0 X

Puoi fare info in più sul tuo server?

risposto 5 anni fa
Mario Santagiuliana
X 0 X

L'utente superson mi ha mandato in privato la configurazione del suo server.

Dalla lettura della configurazione non mi pare sia abilitato il mod_rewrite di apache del server...

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Ciao, scusa sempre il ritardo, grazie, però non ho capito una cosa, l'host in questione, è tohost, e da quello che ho trovato nelle faq, il mod_Rewrite è attivato, e dicono di configurare solo bene ogni .htaccess

risposto 5 anni fa
superson_16
X 0 X

Di fatto, nella configurazione che mi avevi passato, non era caricato il modulo...

risposto 5 anni fa
Mario Santagiuliana
X 0 X

La configurazione èa ancora quella.. Quindi mi sà che scriverò a loro per famri spiegare perhè non è abilitato.. Vi faccio sapere.. Grazie

risposto 5 anni fa
superson_16
X 0 X

Niente, mi hanno risposto che il mod_rewrite di apache è abilitato... Ma non sarà che ho il sito in un percorso del genere:

www.nomedominio.org/siti/sito_zend/ 

???

risposto 5 anni fa
superson_16
X 0 X

Spiega meglio allora dove si trova il sito e come è raggiungibile. Facci vedere di conseguenza il tuo htaccess.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

PATH:   www.dominio.it/siti/sito_zend/

in sito_zend risiede questa struttura:

application

   -configs

        -aplication.ini

   -controllers

        -ArticoloController.php

        -NewsController.php

        - ecc....

   -forms

       -FormsUser.php

       -ecc...

   -models

       -Articolo.php

       -Utente.php

   -views

      -helper

      -scripts

        -articolo

        -create.phtml

        -index.phtml

         -ecc.....

library

   -zend

   - /* LE LIBRERIE ZEND */

public

   -css

   -js

   -.htaccess

   -index.php

Gli .access sono 3 in questi path:

www.dominio.it/.htaccess con questo contenuto:

###################

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} admin.supersonico.ext

RewriteCond %{REQUEST_URI} !admin/

RewriteRule ^(.*)$ /admin/$1 [L]

###################

Secondo .htaccess in www.dominio.it/siti/sito_zend/ con questo contenuto:

SetEnv APPLICATION_ENV production

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ public/index.php [NC,L]

RewriteBase /siti/

terzo .htaccess a questo path: www.dominio.it/siti/sito_zend/public/  con questo contenuto:

SetEnv APPLICATION_ENV development

RewriteBase /siti/sito_zend/public/

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]

Questo e tutto, S'incasinano forse tra loro??? Come sempre grazie mille

Saluti

risposto 5 anni fa
superson_16
X 0 X

Elimina l'ultimo htaccess ed il secondo imposta il rewrite base all'inizio, non in fondo alle regole.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Ciao MarioS, niente da fare, non và, sempre pagina not found :-((((

risposto 5 anni fa
superson_16
X 0 X

Ciao a tutti

scusate l'intromissione...

volevo chiederti...ma per verificare il funzionamento a che url accedi??

tipo:

dominio/siti/sito_zend/

oppure

dominio/siti/sito_zend/public/

????

non so se centra o meno...ma mi viene il dubbio...

io per esempio ho usato una struttura personalizzata senza la cartella public per intenderci...visto che lo zend framework lo permette...

poi questo non dovrebbe essere invece che cosi:

Originale:

Secondo .htaccess in www.dominio.it/siti/sito_zend/ con questo contenuto:

SetEnv APPLICATION_ENV production

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ public/index.php [NC,L]

RewriteBase /siti

Secondo me:

Secondo .htaccess in www.dominio.it/siti/sito_zend/ con questo contenuto:

SetEnv APPLICATION_ENV production

RewriteEngine On

RewriteBase /siti/sito_zend/

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ /public/index.php [NC,L]

Spero di non aver sparato bagianate :)

ciau

EDIT: Dimenticavo, ma secondo me converrebbe che tu postassi il contenuto dei tuoi file index.php in public

del tuo bootstrap e il tuo config.ini

almeno ci si può rendere maggiormente conto di come stai procedendo col tuo ambiente server...

risposto 5 anni fa
paulpetta
modificato 5 anni fa
X 0 X

Ri-salve, per Paulpetta, anche se sono bagginaate, potrebbero sempre servire per spunti di ragionamento.. Cmq ho settato il secondo .htaccess  a come lo ha i postato tu, ma niente, quindi ti posto il file index bootstrap e config.ini ( che a me si chiama application.ini):

index.php:

<?php

// Definiamo il path della directory "application"

defined('APPLICATION_PATH')

|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Definiamo l'ambiente in cui stiamo lavorando

defined('APPLICATION_ENV')

|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Assicuriamoci che la directory "library" sia compresa nell' "include_path"

set_include_path(implode(PATH_SEPARATOR, array(

realpath(APPLICATION_PATH . '/../library'),

//realpath(APPLICATION_PATH . '/../../Library'),

get_include_path(),

)));

/** includiamo  Zend_Application */

require_once 'Zend/Application.php';

// Creiamo un'istanza di Zend_Application...

$application = new Zend_Application(

APPLICATION_ENV,

APPLICATION_PATH . '/configs/application.ini'

);

//...e la lanciamo

$application->bootstrap()->run();

bootstrap.php

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap{

}

application.ini:

[production]

phpSettings.display_startup_errors = 1

phpSettings.display_errors = 1

phpSettings.date.timezone = "Europe/Rome"

includePaths.library = APPLICATION_PATH "/../library"

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"

bootstrap.class = "Bootstrap"

appnamespace = "Application"

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

resources.frontController.params.displayExceptions = 0

[testing : production]

phpSettings.display_startup_errors = 1

phpSettings.display_errors = 1

resources.db.params.dbname = zf_html_it_test

[development : production]

phpSettings.display_startup_errors = 1

phpSettings.display_errors = 1

resources.db.params.dbname = zf_html_it_test

Di sicuro ho incasinato un pò di cosette...

ciaooo

risposto 5 anni fa
superson_16
X 0 X
http://www.supersonico.org/siti/sito_zend/public/Index/prova

Non è che magari il problema è dovuto al fatto che il framework è case sensitive, e quindi dovresti scrivere:

http://www.supersonico.org/siti/sito_zend/public/index/prova

Magari non c'entra niente, ma a volte, soprattutto in ambiente Linux, deve esserci una corrispondenza precisa, anche per quanto riguarda il nome delle cartelle (cartella != Cartella).

Ciao

Luca

risposto 5 anni fa
Luca450Mhz
X 0 X

Ciao Luca, niente :-(( grazie per il tentativo..

risposto 5 anni fa
superson_16
X 0 X

Sei riuscito a risolvere....io mi trovo con lo stesso problema.

una miriade di test...ma nulla.

In locale è tutto OK......

risposto 4 anni fa
Celexdesign
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda