Nginx mod_rewrite für unterordner

Apache, Lighttpd, nginx, Cherokee
paykoman
Posts: 87
Joined: 2006-07-16 14:18

Nginx mod_rewrite für unterordner

Post by paykoman » 2015-06-09 09:09

Hallo,

nun nach dem ich mich beim letzten Server an Nginx gewöhnt habe, habe ich nun das Problem das ich für Unterordner eigene rules erstellen muss...

Sinn und Zweck ist ich habe einen "Arbeitsordner" dort werden diverse unterschiedliche Scripte installiert, oder man könnte auch sagen jedes Projekt hat einen eigenen Ordner, dieser soll jeweils als "root" simuliert werden (was die Weiterleitungen angeht).

Nun habe ich vorhin gesehen es gibt die Möglichkeit mit :
location /arbeitsplatz/projekt {
rules
}

In den Beispielen stand jedoch immer nur eine Weiterleitungs-Regelung, kann/darf man da auch mehrere verpacken? Weil das wäre ja echt praktisch und würde mein Problem lösen, ein Beispiel sähe dann so aus:

Code: Select all

<IfModule mod_rewrite.c>
    RewriteEngine On
   
    ################
    # Hostname 'normalisieren'
    ################
    RewriteCond %{HTTP_HOST} !=labor.domain.com
    RewriteRule (.*) http://labor.domain.com$1 [R=301,L]

    location /ws/gcms {
        ################
        # Aufruf der index.php datei weiterleiten zur Startseite
        ################
        RewriteRule ^/index.php$ http://labor.domain.com/ws/gcms/Startseite [R=301,L]
   
        ################
        # Zugriff auf die Seite via freundliche URL
        ################
        RewriteRule ^/compressor/(.*)/(.*)/(.*)$ /compressor.php?type=$1&compressing=$2&file=$3
        RewriteRule ^/admin/(.*)/(.*)$ /index.php/admin/$1/$2
        RewriteRule ^/site/(.*)/(.*)$ /index.php/site/$1/$2
   
        ################
        # SEO URLS
        ################
        RewriteRule ^/subfolder/Startseite(.*)$ /subfolder/index.php/site/portal/home$1
        RewriteRule ^/Startseite(.*)$ /index.php/site/portal/home$1
        RewriteRule ^/Region-aendern(.*)$ /index.php/site/wwmanager/region$1
        RewriteRule ^/Sprache-aendern(.*)$ /index.php/site/wwmanager/slang$1
        RewriteRule ^/Content-nach-Region-filtern(.*)$ /index.php/site/wwmanager/cregion$1
        RewriteRule ^/Content-nach-Sprache-filtern(.*)$ /index.php/site/wwmanager/cslang$1
   
        RewriteRule ^/Anmelden(.*)$ /index.php/site/auth/login$1
        RewriteRule ^/Abmelden(.*)$ /index.php/site/auth/logout$1
        RewriteRule ^/Session-loeschen(.*)$ /index.php/site/auth/clear$1
        RewriteRule ^/Registrieren(.*)$ /index.php/site/auth/register$1
        RewriteRule ^/Konto-aktivieren(.*)$ /index.php/site/auth/activation$1
        RewriteRule ^/Passwort-vergessen(.*)$ /index.php/site/auth/newpassword$1
        RewriteRule ^/Aktivierungs-email(.*)$ /index.php/site/auth/resend$1
   
        RewriteRule ^News-Categories$ index.php/site/news/cats
    }

   location /ws/anderes_projekt {
     rules....
  }
</IfModule>


Nun ich konnte es leider nicht testen, weil Plex mir sagt location sei ein unbekanntes modul, zudem gibt es dann eigentlich noch server {} als übergeordnete Anweisung welche ich nicht so recht anzuwenden weiss.

Nun vllt. gibt es auch eine einfachere Lösung ich hoffe mir kann Jemand weiterhelfen...

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Nginx mod_rewrite für unterordner

Post by Joe User » 2015-06-09 11:05

Du bist Dir sicher dass Du nginx und nicht Apache einsetzt?
Die Konfiguration ist jedenfalls 95% Apache, 5% nginx und somit 100% falsch.

Hast Du schonmal in die Doku geschaut, was Alles in "location {}" stehen darf?

Was zum Teufel ist Plex und warum meckert es über unbekannte Module?


Es gibt eine einfache Lösung welche in der IT nahezu immer hilft:
1. Doku lesen
2. Anhand der Doku arbeiten
3. Wenn die Doku versagt, jemanden fragen der sich damit auskennt

Du hast die ersten zweieinhalb Punkte übersprungen und möchtest diese nun bitte erstmal nachholen, danach meldest Du Dich mit der überarbeiteten Konfiguration wieder und Dir wird zufriedenstellend geholfen werden können.


Sorry, ich hätte gern konkreter geholfen, aber dazu fehlen zuviele Infos und vor Allem eine brauchbare Konfiguration als Basis Deinerseits.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

paykoman
Posts: 87
Joined: 2006-07-16 14:18

Re: Nginx mod_rewrite für unterordner

Post by paykoman » 2015-06-09 22:48

Hallöchen,

ja ist richtig, Server sind nicht mein Gebiet, bin eben mehr der Web-Entwickler.
Naja Plesk eben *g* darüber schalte ich mein FastCgi ein (wenn gewünscht) und trage dort auch Projekt-spezifisch meine Host-konfiguration ein.

Am hilfreichsten wäre glaube ich zu wissen über welche Konfigurationen genau du mehr infos benötigst dann werde ich versuchen diese zu liefern.

Es kann ja nun sein das dieses source / {} bei meinem Server nun tatsächlich nicht klappt weil es irgend wie ne Apache mit FastCgi Version ist und garnicht per ngnix läuft. Drum sollte sich das Thema ja auch nicht rein um die source{} funktion drehen, eine ähnliche Lösung für Apache wäre mir ebenfalls recht, hauptsache funktioniert *g

MFG: Paykoman