mod-rewrite
Riscritture interne di base
Ricerca…
URL di fantasia su php
In questo esempio, riscriviamo l'URL del modulo http://example.com/topic/id-seoname
in uno script php che accetta un ID come input. Questo esempio si aspetta che la regola sia nel contesto "per-directory" .
RewriteEngine on
RewriteRule ^topic/([0-9]+)-[^/]*/?$ /topics.php?id=$1 [L]
In questo esempio, topic/
è il prefisso comune di tutti gli argomenti. È seguito da un numero usato dalla sceneggiatura. Infine, viene visualizzato il nome di seo. Questo nome seo viene ignorato da mod_rewrite, perché è solo lì per ragioni seo. Il secondo argomento di RewriteRule
contiene l'url per riscrivere a. Il segnaposto $1
viene sostituito con il contenuto del primo gruppo di cattura nella regex prima di esso. In questo caso verrà sostituito con ciò che corrisponde ([0-9]+)
.
Url con stringa di query su script php
Per abbinare una stringa di query, è necessario aggiungere una condizione a RewriteRule
. Questo viene fatto mettendo le direttive RewriteCond
prima della regola corrispondente. Nell'esempio seguente riscriviamo dinamicamente un vecchio URL in un nuovo url.
RewriteCond %{QUERY_STRING} ^name=([^&]*)$
RewriteRule ^oldscript\.php$ newscript.php?username=%1 [L]
Si noti che per abbinare il punto letterale, dobbiamo sfuggirlo con una barra. %1
viene sostituito con il primo gruppo di cattura della condizione precedente. In questo caso viene sostituito da qualunque cosa corrisponda ([^&]*)
.