301 Weiterleitung von Nicht-WWW zu WWW für Nginx

545
Frank Martin

Ich verwende den folgenden Code auf meiner Website, um eine permanente 301-Weiterleitung von einer Domäne außerhalb der WWW-Domäne an die WWW-Domäne vorzunehmen. Mein Webserver ist Nginx.

rewrite ^/([^&]*)&(.*)$ http://www.example.com/$1?$2 permanent; 

Dies funktioniert nur in einem Fall, in den ein Benutzer eingibt, auf http://example.comden umgeleitet wirdhttp://www.example.com

Wenn ein Benutzer z. B. für tippt http://example.com/portal.php, wird nicht weitergeleitethttp://www.example.com/portal.php

Wie kann ich sicherstellen, dass alle meine Seiten zur WWW-Domäne weitergeleitet werden?

0
Ich bin vielleicht falsch, aber ich denke, Sie brauchen ein "/" in Ihrem Regex-Filter. Versuchen Sie es stattdessen: `RewriteRule ^ https: //www.%1% [R = 301, L, NE]` Eine andere Lösung finden Sie in [dieser Frage] (https://stackoverflow.com/questions) / 7947030 / nginx-no-www-to-www-and-www-to-no-www) da ich Nginx nicht mag. Dooley_labs vor 6 Jahren 0

1 Antwort auf die Frage

1
Tim

Dies geschieht normalerweise mit einem anderen Serverblock, wobei kein Regex erforderlich ist.

server { listen 80; server_name example.com;  return 301 http://www.example.com$request_uri; }  server { listen 80; server_name www.example.com;  # Location blocks etc } 

Sie können zusätzliche Serverblöcke hinzufügen, wenn Sie https umleiten möchten.