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?

È stato utile?

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].

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top