Pregunta

Estoy trabajando en URL limpia para mi sitio web y noté que lo que encuentra en Internet está prácticamente en reescribir sus URL limpias a la URL con la URL con la que puede trabajar con el servidor.Así que algo así:

www.domain.com/profile/username --> www.domain.com/profile.php?u=username

RewriteEngine On
RewriteRule ^profile/(.*)$ /profile.php?u=$1 [L]

Ahora, con esto, debería vincularlo dentro de mi sitio web a la limpieza.Pero intuitivamente se siente más sólido / mejor en vincularse con la URL 'sucia'.Por lo tanto, en ese caso, debe usar Rewriterules para lo anterior y una regla de redireccionamiento para redirigir la 'URL sucia' a la URL limpia, por lo que el usuario solo ve la URL limpia en el navegador en todo momento.

www.domain.com/profile.php?u=username --> www.domain.com/profile/username

es este algo que es algo bueno que hacer.¿Está hecho por sitios web?¿Cuáles son los argumentos en contra / a favor de ello?

¿Y cómo haces una redireccionamiento de esta manera?Algo como lo siguiente no parece funcionar:

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]

Soy bastante nuevo para .htaccess para que pueda pedir algo que sea obvio ...

¿Fue útil?

Solución

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]

no va a funcionar porque no puede coincidir con la cadena de consulta de un RewriteRule (también tiene un espacio alejado en sus banderas).También desea coincidir con la solicitud real y no el URI porque simplemente causará un bucle redirecto de su otra regla.

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profile\.php\?u=([^&\ ]+)
RewriteRule ^/?profile\.php$ /profile/%1 [R=301,L]

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