Apache equivalente de url.rewriteonce lighttpd?
-
13-09-2019 - |
Pregunta
Tengo mi punto de entrada de la aplicación como ésta.
/app/index.php <-- this is the main dispatcher.
y la aplicación de carpetas específicas en / app /
/app/todo/
/app/calendar/
/app/bugtrack/
archivos específicos de cada aplicación cotains carpeta de la aplicación.
Me gustaría transmitir todas las solicitudes unders aplicación para pasar a través de /app/index.php.
Así que eso.
/app/todo/list/today -> goes to /app/index.php
/app/ -> goes to /app/index.php
/app/bugtrack/anything/else goes to /app/index.php
En mi máquina de prueba lighttpd que pueda hacer fácilmente que al escribir una regla como la siguiente.
url.rewrite-once = (
"^\/app\/todo\/*" => "/app/index.php",
"^\/app\/calendar\/*" => "/app/index.php",
"^\/app\/bugtrack\/*" => "/app/index.php",
)
Ahora necesita para que funcione en Apache usando .htaccess y mod_rewrite.
Pero no importa lo que hago, que no está funcionando.
escribí lo siguiente en /app/.htaccess
RewriteEngine on
RewriteRule .* index.php [QSA]
Funciona para / app / y / app / todo / pero no para / app / todo / / Lista de hoy en día, por ejemplo.
Alguien me puede dar alguna idea de cómo hacerlo?
Solución
RewriteEngine On
RewriteBase /app
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Lo que esto hace es si la petición no es un nombre de archivo o un directorio, reescribirla a index.php. A continuación, comprobar $_SERVER[REQUEST_URI]
.