Apache equivalente di url.rewriteonce lighttpd?
-
13-09-2019 - |
Domanda
Ho il mio punto di ingresso domanda come questa.
/app/index.php <-- this is the main dispatcher.
E applicazione specifiche cartelle in / app /
/app/todo/
/app/calendar/
/app/bugtrack/
file specifici di applicazione Ogni applicazione cotains cartella.
Vorrei passare tutte le richieste under app per passare attraverso /app/index.php.
In modo che.
/app/todo/list/today -> goes to /app/index.php
/app/ -> goes to /app/index.php
/app/bugtrack/anything/else goes to /app/index.php
Sulla mia macchina di prova lighttpd posso facilmente farlo scrivendo una regola come questa.
url.rewrite-once = (
"^\/app\/todo\/*" => "/app/index.php",
"^\/app\/calendar\/*" => "/app/index.php",
"^\/app\/bugtrack\/*" => "/app/index.php",
)
Ora è necessario per farlo funzionare su Apache usando .htaccess e mod_rewrite.
Ma non importa quello che faccio, non funziona.
ho scritto quanto segue in /app/.htaccess
RewriteEngine on
RewriteRule .* index.php [QSA]
Si lavora per / app / e / app / todo / ma non riesce per / app / todo / lista / oggi per esempio.
Qualcuno mi può dare qualche idea di come farlo?
Soluzione
RewriteEngine On
RewriteBase /app
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Quello che fa è se la richiesta non è un nome di file o una directory, riscriverlo a index.php. Poi controlla $_SERVER[REQUEST_URI]
.