Come utilizzare punti nelle URL

Quando in un progetto si utilizzano url contenenti punti, in una installazione standard di symfony, si otterrà dal server web un errore 404: questo perché verrà cercato dal server stesso un file piuttosto che ridirigere la richiesta al motore di routing di symfony.
Facciamo un esempio pratico:
routing.yml:
test:
url: /test/:title
param: { module: test, action: index }

/modules/test/templates/indexSuccess.php:
<?php echo $sf_params->get('title'); ?>

Ora se visitiamo la seguente url http://localhost/test/abc apparirà a video la scritta abc.
Se invece utilizziamo quest’altra url http://localhost/test/a.b.c il risultato sarà un errore 4040 “The requested URL /test/a.bc was not found on this server.”.

Per evitare questo comportamento si deve mettere mano al file .htaccess presente nella directory web del nostro progetto per un veloce hack, commentando la prima regola di rewriting in questo modo:

# we skip all files with .something
#RewriteCond %{REQUEST_URI} \..+$
#RewriteCond %{REQUEST_URI} !\.html$
#RewriteRule .* - [L]

In questa maniera ricaricando l’url http://localhost/test/a.b.c si otterrà nel browser il risultato voluto, cioè la stringa “a.b.c”

Unisciti alla discussione

1 commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

phpDay - Maggio 2019 a Verona