Pregunta

Uf .. mod_rewrite hace sentir estúpida. Simplemente no han envuelto alrededor de mi cerebro todavía. : /

Tengo esta url:

http://example.com/a/name/

... que quiero señalar aquí:

http://example.com/a/index.php?id=name

... donde name se lo está consiguiendo pasar a index.php como argumento id.

Todo lo que yo he intentado resultados, ya sea en un 404 o un 500 ..: (

¿Fue útil?

Solución

Para los primeros pasos:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L]

Si una reescritura tutorial no funciona para usted, probar otra .

Editar: index.php excluidos según la sugerencia de Gumbo

Otros consejos

Si desea que la barra final sea opcional, hay que excluir el archivo que está reescribiendo la solicitud a. De lo contrario tendrá un buen recursividad infinita.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/a/index\.php$
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L]

A continuación, cualquier petición que se inicia con /a/… pero no /a/index.php se reescribe a /a/index.php.

Pero si la barra final es obligatoria, no hay necesidad de excluir el archivo de destino:

RewriteEngine on
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]

Tal vez algo en la línea de

RewriteEngine on
RewriteBase /a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA]

haría el truco.

Le sugiero que eche un vistazo a la siguiente dirección:

http://www.dracos.co.uk/code/ Apache-reescritura de problemas /

Las soluciones presentadas van a trabajar, pero hay algunas advertencias explican en la URL, en relación principalmente? y # en las URL de sí mismos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top