Ergebnis 1 bis 6 von 6

Thema: URL umschreiben unter nginx

  1. #1
    Gesperrt
    Registriert seit
    19.10.2009.
    Ort
    Mülheim a.d. Ruhr
    Beiträge
    18

    Standard URL umschreiben unter nginx

    Mahlzeit,

    folgendes Problem stellt sich mir gerade. Das System ist Debian Lenny, darunter läuft nginx, spawn-fcgi aus der lighttpd sowie MySQL 5. Nun habe ich bislang alles soweit ohne Probleme zum laufen gekriegt.

    Wenn ich jetzt jedoch die Seite aufrufe und kein URL umschreiben aktiviert habe, kommt ein 404. Der Aufruf der Seite im Browser erfolgt so: http://www.domain.eu/index.php/products.html

    Wenn ich nun jedoch URL umschreiben aktiviere und die Seite wie folgt aufrufe ( http://www.domain.eu/products.html ) erscheint ebenfalls ein 404.

    Jetzt kommt das interessante, wenn ich jedoch "Keine Seitenaliase verwenden" aktiviere dann funktionierts, klingt ja auch logisch, er verweist mit den rewrites ja auch auf http://www.domain.eu/index.php?id=22

    Meine default config aus sites-available sieht wie folgt aus:

    Code:
    server {
    	listen   80;
    	server_name  www.domain.eu;
    
    	access_log  /var/log/nginx/localhost.access.log;
    
    	location / {
    		root   /var/www/nginx-default;
    		index index.php  index.html index.htm;
    	
    	if (-f $request_filename) {
    		expires 30d;
    		break;
    	}
    
    	if (!-e $request_filename) {
    		rewrite ^(.*)/.html$ /index.php;
    		expires 7d;
    	}
    
    	}
    
    	location /doc {
    		root   /usr/share;
    		autoindex on;
    		allow 127.0.0.1;
    		deny all;
    	}
    
    	location /images {
    		root   /usr/share;
    		autoindex on;
    	}
    
    	#error_page  404  /404.html;
    
    	# redirect server error pages to the static page /50x.html
    	#
    	error_page   500 502 503 504  /50x.html;
    	location = /50x.html {
    		root   /var/www/nginx-default;
    	}
    
    	# proxy the PHP scripts to Apache listening on 127.0.0.1:80
    	#
    	#location ~ \.php$ {
    		#proxy_pass   http://127.0.0.1;
    	#}
    
    	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    	#
    	location ~ \.php$ {
    		fastcgi_pass   127.0.0.1:9000;
    		fastcgi_index  index.php;
    		fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
    		include	       fastcgi_params;
    	}
    
    	# deny access to .htaccess files, if Apache's document root
    	# concurs with nginx's one
    	#
    	location ~ /\.ht {
    		deny  all;
    	}
    }
    Da ich - gezwungenermaßen - das erste mal mit nginx Arbeite und nur mod_rewrite vom Apachen gewöhnt bin, weiß ich einfach nicht mehr weiter...

    Vlt hat ja schon jemand nginx Erfahrung und kann mir dabei auf die Sprünge helfen

    Grüße!

  2. #2
    Contao-Nutzer
    Registriert seit
    27.07.2010.
    Ort
    Schweiz
    Beiträge
    98

    Standard

    Aktviere doch bitte mal im Bereich http {} das rewrite-Debugging.

    Code:
    rewrite_log  on;
    Danach siehst du in der error_log (insofern du eine entsprechende verbosity aktiviert hast) was passiert. Dementsprechend kannst du die Rewrite-Regeln anpassen.

  3. #3
    Contao-Nutzer Avatar von Borrible
    Registriert seit
    22.06.2009.
    Ort
    Berlin
    Beiträge
    79

    Standard

    Probier's mal mit
    Code:
    try_files $uri $uri/ /index.php
    anstatt
    Code:
    if (!-e $request_filename) {
    	rewrite ^(.*)\.html$ /index.php; // <--- STATT rewrite ^(.*)/.html$ /index.php; ?!
    	expires 7d;
    }
    Schau Dir auch mal die Konfigbeispiele zu anderen Systemen wie z.B. WordPress an. http://wiki.nginx.org/Configuration#Applications
    Und insbesondere dieses hier in der nginx-Doku http://wiki.nginx.org/Pitfalls#Check_IF_File_Exists sowie http://wiki.nginx.org/Configuration#Rewrite_examples.

    Gruß,
    Katha

  4. #4
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Das ist komisch!

    Ich habe die selben Regeln in der domain.vhost stehen und bei mir funktioniert, bis jetzt, alles bestens.:
    Code:
    location / {
                 if (-f $request_filename) {
                    expires 30d;
                    break;
                 }
    
                 if (!-e $request_filename) {
                    rewrite ^(.*)\.html$ /index.php ;
                    expires 7d;
                 }
            }
    In der default habe ich noch folgendes eingetragen:
    Code:
    server {
            server_name    www.domain.tld;
            rewrite ^(.*)$ http://domain.tld$1 permanent;
    }
    Was aber daran eigentlich nicht liegen kann. Diese Regel ist ja nur dafür da, um das www. vor der Domain zu entfernen und so generell schonmal doppelten Content zu verhindern.

    Ansonsten habe ich keine weiteren Regeln definiert.
    Zusätzlich verwende ich die Erweiterung urlcleaner.

    Auf dem Server laufen mehrere Domains, mit den selben Regeln. ^^
    Egal welche Einstellungen ich unter Contao verwende.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  5. #5
    Contao-Nutzer Avatar von Borrible
    Registriert seit
    22.06.2009.
    Ort
    Berlin
    Beiträge
    79

    Standard

    Zitat Zitat von Borrible Beitrag anzeigen
    Code:
    if (!-e $request_filename) {
    	rewrite ^(.*)\.html$ /index.php; // <--- STATT rewrite ^(.*)/.html$ /index.php; ?!
    	expires 7d;
    }
    HxD hat da einen Slash "/.html$" statt Backslash "\.html$" im RegEx verwendet. Meine Anmerkung im Code war wohl nicht deutlich genug hervorgehoben.

    Gruß,
    Katha

  6. #6
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Achso, *haha* und ich habe wohl nicht richtig hingesehen.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 28.01.2013, 07:09
  2. URL Umschreiben
    Von kandesign im Forum Installation / Update
    Antworten: 4
    Letzter Beitrag: 18.02.2011, 10:10
  3. URL umschreiben vs. SSL
    Von jony im Forum Geschützte Bereiche/Mitglieder
    Antworten: 1
    Letzter Beitrag: 02.10.2010, 08:31
  4. URL umschreiben
    Von Dani im Forum Entwickler-Fragen
    Antworten: 9
    Letzter Beitrag: 22.06.2010, 19:11
  5. Kommentare unter News und Kommentar unter "Gästebuch"
    Von lgerd im Forum Allgemeine Inhaltselemente
    Antworten: 4
    Letzter Beitrag: 16.05.2010, 17:51

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •