2011-01-17 9 views
0

Ich tryng eine .htaccess-URL Rewrite in diesen Fällen zu machen:htacces URL Rewrite - entfernen Ordnernamen von url

www.website.com/index.php/admin/something => www.website.com/admin/something 
www.website.com/index.php/website/something => www.website.com/something 
www.website.com/index.php/login/something => www.website.com/login/something 

Anmerkung: "Etwas" kann "something1/something2/something3" oder „something1/something2" oder ‚etwas‘

ich schneiden kann ‚index.php‘ mit:

RewriteEngine on 

RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

aber ich kann einen Weg zu entfernen, nur nicht gefunden ‚Website /‘ und nicht ‚admin /‘ und "login /" verlässt den Rest der URL.

Antwort

0

Wenn Sie diesen Ansatz verwenden, müssen Sie wahrscheinlich jeden möglichen Eingabeverweis angeben, der nicht Ihrem 'Website' Controller zugeordnet werden soll, und ihn in index.php/$ 1 umwandeln und jede andere Anfrage behandeln, als wäre es eine Methode des Website-Controller, die Abbildung es auf index.php/Website/$ 1

So etwas wie die unten wird alles mit Admin-Start-Karte oder anmelden, um index.php und alles andere auf der Website Controller:

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^admin.* 
RewriteCond %{REQUEST_URI} ^login.* 
RewriteRule ^(.*)$ index.php?/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} 
RewriteRule ^(.*)$ /index.php?/website/$1 [L] 
+0

Vielen Dank für Ihre Antwort, aber ich bekomme einen Fehler von 500 für alle Seiten mit diesem Code ... Ich versuche, eine Lösung mit diesem zu finden: RewriteEngine auf RewriteCond $ 1!^(Webseite /) RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule^(. *) $ Webseite/$ 1 [L] RewriteCond $ 1!^(Index ./php|resources|robots.txt) RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule^(. *) $ index.php/$ 1 [L] in diesem Fall funktioniert alles gut für/Website aber nicht für Admin/oder Login / – mau