mod-rewrite
Reescrituras internas básicas.
Buscar..
Fancy url para script php
En este ejemplo, reescribimos las direcciones URL del formulario http://example.com/topic/id-seoname
en un script php que toma una identificación como entrada. Este ejemplo espera que la regla esté en el contexto "por directorio" .
RewriteEngine on
RewriteRule ^topic/([0-9]+)-[^/]*/?$ /topics.php?id=$1 [L]
En este ejemplo, topic/
es el prefijo común de todos los temas. Le sigue un número que utiliza el script. Por último, se muestra el nombre del seo. Este nombre de seo es ignorado por mod_rewrite, porque solo está ahí por razones de seo. El segundo argumento de RewriteRule
contiene la url para reescribir. El marcador $1
posición $1
se reemplaza con el contenido del primer grupo de captura en la expresión regular anterior. En este caso, se reemplazará con lo que coincida con ([0-9]+)
.
Url con cadena de consulta a script php
Para hacer coincidir una cadena de consulta, se debe agregar una condición a la RewriteRule
. Esto se hace poniendo RewriteCond
directivas RewriteCond
antes de la regla correspondiente. En el siguiente ejemplo, reescribimos dinámicamente internamente una url antigua a una url nueva.
RewriteCond %{QUERY_STRING} ^name=([^&]*)$
RewriteRule ^oldscript\.php$ newscript.php?username=%1 [L]
Tenga en cuenta que para hacer coincidir el punto literal, debemos escapar con una barra diagonal. %1
se reemplaza con el primer grupo de captura de la condición anterior. En este caso, se reemplaza por lo que coincida con ([^&]*)
.