PHP Problema con il Rewrite URLs con Laravel

Stato
Discussione chiusa ad ulteriori risposte.

biotek_

Utente Electrum
4 Maggio 2009
111
11
42
101
Ultima modifica:
Salve Ragazzi,
quest'oggi vi scrivo perche ho riscontrato dei problemi nel deployng di una applicazione sviluppata con laravel in un hosting free come altervista.

Allora il problema a quanto ho potuto dedurre si riflette nel rewriting rule per quanto riguarda gli url.

Nella directory public dell'app abbiamo il nostro file index.php che funge come un gestore di rotte, e il file htaccess che riscrive le richieste a seconda delle regole stabilite.
Adesso se in locale mando il seguente indirizzo

Codice:
 http://localhost/imapp/public/ads

Tutto funziona mentre su altervista

Codice:
http://biotek17.altervista.org/imapp/public/ads

Mi ritorna un errore 404 quindi devo necessariamente scrivere cosi:

Codice:
http://biotek17.altervista.org/imapp/public/index.php/ads

In questo modo funge e non capisco per quale motivo non funge come in locale, rendendo l'url unfriendly e anche antiestetico.

Quindi ho dedotto che forse è un problema relativo ad altervista o a come il file htaccess, all'interno della directory public, gestiona alcune regole di rewrite.
Nel file htaccess si possono osservare le seguenti regole:

Codice:
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

E' un dilemma che mi porto da un paio di settimane e vorrei poterlo risolvere, purtroppo documentandomi non sono riuscito a trovare molto quindi chiedo aiuto a voi sperando possa trovare una soluzione, in tanto vi mostro qualche esempio tra come vengono gestiti gli url in locale e come devo gestirli su altervista per fare in modo che index.php mi ritorni ad una determinata rotta.

Localhost

1590091045564.png


ALTERVISTA
1590091123627.png


ALTERVISTA URL Funzionante
1590091167231.png


Spero che chi lavora con Laravel possa aiutarmi a risolvere questo enigma, anche se credo sia un problema relativo ad altervista.
Grazie anticipatamente!

Volevo aggiungere uno screen della directory root che comunque puo aiutare anche se do per scontato che sapete gia come viene strutturata gerarchicamente una applicazione laravel.
1590101894716.png


Dir /Public

1590101951279.png
 
Ultima modifica:
Trovata la soluzione, la condivido con voi perche molte persone potrebbero avere lo stesso problema.

Semplicemente ho creato un file htaccess nella directory root con le seguenti regole:

Codice:
#Dir /imapp

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /imapp
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Dopo di che nella directory public ho modificato la seguente regola.
Codice:
#/imapp/public
RewriteRule ^ index.php [L]
con
Codice:
#/imapp/public
RewriteRule ^(.*)$ public/index.php/$1 [L]

ed il gioco è fatto.
adesso funge.


@Dazorn Se vuoi puoi chiudere la discussione.
 
  • Mi piace
Reazioni: joket# e Dazorn
Stato
Discussione chiusa ad ulteriori risposte.