mod_rewrite instalar habilitar digitalocean activar apache .htaccess mod-rewrite query-string

apache - instalar - ¿Cómo puedo modificar mod_rewrite y mantener las cadenas de consulta?



linux mod_rewrite (1)

Quiero mod_rewrite una URL a otra página, pero también quiero que se conserven las cadenas de consulta añadidas.

RewriteEngine On #enforce trailing slashes RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !# RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ http://localhost/siteroot/$1/ [L,R=301] RewriteRule ^apps/([A-Za-z0-9-_]+)/?$ index.php&app=$1

Entonces, si un usuario visita apps/app1/ , se muestra index.php?app=app1 . Sin embargo, deseo poder preservar cadenas de consulta opcionales, de modo que visitar apps/app1/?variable=x devuelva index.php?app=app1&variable=x .

¿Qué regla / condición mod_rewrite haría que esto suceda?


[QSA] agregar el indicador [QSA] ("apéndice de cadena de consulta")

RewriteRule ^apps/([A-Za-z0-9-_]+)/?$ index.php&app=$1 [L,QSA]

Para la página 301 redirige con el indicador [R] en lugar de las reescrituras internas como esta, la cadena de consulta se agrega automáticamente. Sin embargo, debe forzarlo con [QSA] para la reescritura interna.