mod_rewrite per Freego


Il vecchio codice di Freego rispondeva alle chiamate del tipo:

/news.php?show=12

il che visualizzava la news numero 12.

Il nuovo codice basato su Ruby On Rails riproduce la stessa azione con questa chiamata:

/news/show/12

C’è poca differenza e dato che molti accedono da fuori con i link vecchi, ho pensato di mettere un banale RewriteRule su apache per reinderizzare le URL. Al solito, le cose banali non mi riescono e ci ho perso una mattinata.

Le regole che ho aggiunto sono queste:

        RewriteCond %{QUERY_STRING} ^show=([^&]+)$
        RewriteRule   ^/news.php    /news/show/%1?   [R]
        RewriteRule   ^/articles.php    /articles/show/%1?   [R]
        RewriteRule   ^/summary.php    /summaries/show/%1?   [R]

Quello che continuavo a sbagliare è il fatto che inizialmente non pensavo di concentrarmi sulla QUERY_STRING e secondo, che se non si usa il carattere ‘?’ alla fine della RewriteRule, la QUERY_STRING viene appiccipata alla fine nuovamente, creando una URL del tipo:

/news/show/12?show=12

che funzionava lo stesso, ma non era corretta.

,

  1. #1 by adriano on April 30, 2006 - 7:16 pm

    Grazie, ora funziona perfettamente.

(will not be published)