Ciao a tutti,
sto facendo un applicazione web e in locale funziona, ma una volta in produzione no perchè è accessibile tramite un
un reverse proxy,e l’applicazione non costruisce gli url giusti.
Ciao a tutti,
sto facendo un applicazione web e in locale funziona, ma una volta in produzione no perchè è accessibile tramite un
un reverse proxy,e l’applicazione non costruisce gli url giusti.
mettendo nel file di configurazione main.php
‘request’=>array(
'enableCsrfValidation'=>true,
'hostInfo'=>'htt ps://'.$_SERVER['HTTP_X_FORWARDED_HOST'].'/<sitefolder>/'
),
non funziona lo stesso.
I temi e i css sono riuscita a farli caricare settando il baseUrl
‘request’ => array(
'enableCsrfValidation'=>true,
'hostInfo'=>'htt ps://www.webserver.com/miosito/',
'baseUrl' => '/miosito',
),
ma il non riesco a navigare/effettuare il login
Come devo fare? qualche idea?
Ho anche trovato questo post
ht tp://www.yiiframework.com/forum/index.php/topic/15831-yii-reverse-proxy-site/
ma non funziona
Cosa vuole dire "non funziona"? Devi darci un "errore".
Colgo l’occasione per chiederti come mai stai usando un reverse proxy.
compilo il form del login e al submit non entra nella actionLogin
nel senso che ho un form
con
Username -texfield
Password -textfield
link forgot
i il tasto del submit
se faccio il login non mi va nemmeno alla action site/login (che nel mio caso dovrebbe essere miosito/site/login ) e il link forgot costruito cosi:
<a href="<?php echo Yii::app()->createUrl(‘site/forgot’);?> ">Problemi
di accesso all'account?</a>
mi fa andare alla pagina
https://www.webserver.com/site/forgot
ma a me serve che vada a
https://www.webserver.com/miosito/site/forgot
ho lo stesso problema del post:
http://www.yiiframework.com/forum/index.php/topic/15831-yii-reverse-proxy-site/
ma non riesco a risolverlo
Usiamo un reverse proxy perchè il nostro cliente l’ha scelto per sicurezza
Idee?
Grazie grazie
Ciao Samanta,
forse ho trovato la soluzione ai tuoi problemi.
E’ da un pò di tempo che ho il sospetto che l’ultima versione di Yii abbia qualche bug
(o forse manca di documentazione sui cambiamenti apportati)
Infatti ho letto da qualche parte che non vogliano più supportare la compatibilità con la vecchia release,
solo che non si sa bene come bisogna scrivere nella nuova modalità.
Per esempio sono[size="2"] impazzito 2 giorni per sistemare ciò che prima funzionava, sulla paginazione con CListView[/size]
Avevo creato un nuovo skeleton usando Yii 1.1.12 e poi copiato controller, model, view e persino config/main.php
di un progetto funzionante [size="2"]e la paginazione funzionava "ad capocchiam "[/size]
Per risolvere ho dovuto copiare tutto il vecchio progetto funzionante (realizzato con la vecchia release 1.1.10)
e poi cancellare tutti gli altri controller , model e view (che ovviamente non mi servivano) per vederlo funzionare.
Per questo sono piuttosto convinto dell’esistenza di qualche problema sullo skeleton creato con la 1.1.12.
Perciò il mio suggerimento è di correggere innanzitutto la sintassi del tuo config/main.php così:
'components'=>array(
'request' => array(
'enableCsrfValidation'=>true,
'hostInfo'=>'http://www.webserver.com/',
'baseUrl' => '/miosito',
),
),
che ho verificato personalmente e ti crea l’html del form login in questo modo:
<form id="login-form" action="/miosito/site/login" method="post">
...
...
</form>
come serve a te.
Se poi non ti funziona ancora, prova appunto a copiare lo skeleton di un vecchio progetto e fammi sapere.
E firebug non dice nulla?
Grazie Giancarlo,
ho quasi risolto il problema,
ho solo un problema, dovrei configurare l’urlmanager in modo che capisca che l’url di base non è
ma
http://www.webserver.com/miosito
infatti ora se forzo il valore CActiveForm action=>‘miosito/site/login’
riesco a fare il login ma se chiamo ad esempio http://www.webserver.com/miosito/site/logout
Yii non riesce a capire che il controller è SiteController e la action logout.
forse si possono modificare le rules dell’urlmanager, in modo da farglielo capire,
attualmente è cosi:
‘urlManager’=>array(
'urlFormat'=>'path',
'showScriptName'=>false, //Non voglio visualizzare index.php
'caseSensitive'=>true, 'rules'=>array(
'<_c:\w+>/<_a:\w+>/<id:\d+>' =>'/<_c>/<_a>',
'<_c:(chiamate)>/<_a:\w+>/<id:\w+>' => '<_c>/<_a>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
),
),
IDEE??
grazie grazie.
@sensorario io uso crome… cosa mi potrebbe dire di aiuto firebug? HELPPPP
non basta configurare l’htaccess?
del tipo
RewriteEngine On
#RewriteBase / (per config normale)
RewriteBase /miosito
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
Ciao,
ho cambiato l’htacess
ma mi da un server error… va in loop
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace., referer: https://www.italycsc.com/eusreporting/
Sai cosa può essere?
ps: non so se centra qualcosa ma nell’urlmanager ho ‘urlFormat’=>‘path’
questo è il mio set
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
il solito per cassare index.php e gira regolarmente nel caso l’app non sia sulla root di quel dominio.
cmq sembra un problema del mod_rewrite, ho trovato questo ma non so se può aiutarti:
Fix for infinite loops ^
An error message related to this isRequest exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace.or you may seeRequest exceeded the limit,probable configuration error,Use ‘LogLevel debug’ to get a backtrace, orUse ‘LimitInternalRecursion’ to increase the limit if necessary
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
Ricapitolando, tu hai:
un reverse proxy a cui ti colleghi utilizzando un url avente il seguente formato:
www.webserver.com/miosito/site/login
www.webserver.com/miosito/site/logout
che si preoccupa di ridirezionare il traffico verso il server di backend dove gira yii,
ma con degli url [size="2"]aventi il formato:[/size]
www.serverinterno.com/site/login
www.serverinterno.com/site/logout
E qualunque cosa scrivi dopo webserver.com/miosito
fosse anche [size="2"]webserver.com/miosito/super/cali/fragilisti/che/spiralidoso[/size]
ti fa collegare sempre alla stessa action dello stesso controller.
presumo la [size="2"]www.serverinterno.com/site/index (corretto?)[/size]
Quindi secondo me, .htaccess dev’essere quello standard
(vedi [size="2"]http://www.yiiframew…hide-index-php/)[/size]
perché comunque il tuo server yii accetta parametri del tipo:
www.serverinterno.com/controller/action
presumo che il problema stia nel server dove gira yii che vede nella variabile
$_SERVER[‘REQUEST_URI’] un valore del tipo [size=“2”]www.webserver.com/miosito/[/size]
anziché [size="2"]www.webserver.com/[/size]
[size="2"]Se la mia teoria è corretta, bisognerebbe lavorare sulle rules di [/size]urlManager,
ma non saprei come far sparire quel cavolo di miosito/