2016-08-02 22 views
2

Ich möchte meine Website als mydomain.com bewerben. Für mich sieht es schöner aus als www.mydomain.com. Ist es üblich, diesen www. Teil mit Umleitung zu trimmen? Jemand würde zu www.mydomain.com/books gehen und ich würde ihn zu mydomain.com/books umleiten. Gibt es mögliche Fallen hinter dieser Idee?Ist es üblich, die Umleitung für das Überspringen von www umzuleiten?

Ein weiterer Grund ist, Callback-URLs von Drittanbietern einfach zu machen. Für den Moment muss ich sowohl mydomain.com/oauth/google als auch www.mydomain.com/oauth/google als meine Weiterleitungs-URLs deklarieren, da Google sie anders sieht. Es ist keine große Sache, aber etwas Besonderes zu berücksichtigen.

Wenn es sicher ist, www. zu trimmen, wie kann das erreicht werden? Ich benutze PHP auf Apache. Meine aktuellen .htaccess sieht wie folgt aus:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 
+0

Tun Sie es mit Apache (entweder vHost config oder .htaccess). –

+0

'Ist es üblich, Umleiten für das Überspringen von www?' [Dies könnte Ihre Frage beantworten] (http://www.yes-www.org/why-use-www) Ich bemerkte alle großen Websites zu einem bestimmten Zeitpunkt, wenn sie Starten Sie mit www. Instagram für einen hat es jetzt erstmal nicht exklusiv gemacht. Vielleicht auch, weil Facebook das tut. Aber auch Snapchat und viele andere große Websites. Ich habe kürzlich angefangen, auch www zu erzwingen. –

Antwort

4

Sollten Sie www verwenden?

Sie sollten entweder auf www.example.com oder example.com normalisieren, wobei die Auswahl meist nach Ihren Wünschen erfolgt. Es gibt unterschiedliche Meinungen darüber, welche richtig sind oder welche verwendet werden sollten.

no-www.org befürwortet, dass es überflüssig ist, die www-Subdomain zu verwenden, da das HTTP-Protokoll das Web impliziert.

Standardmäßig verwenden alle gängigen Webbrowser das HTTP-Protokoll. Dabei fügt die Software das "http: //" der angeforderten URL voran und stellt automatisch eine Verbindung zum HTTP-Server auf Port 80 her. Warum benötigen dann viele Server ihre Websites für die Kommunikation über die www-Subdomäne? Bei Mailservern müssen Sie keine E-Mails an die Adresse "[email protected]" senden. Ebenso sollten Webserver den Zugriff auf ihre Seiten über die Hauptdomäne zulassen, sofern keine bestimmte Subdomäne erforderlich ist.

yes-www.org auf der anderen Seite Befürworter der Verwendung der www Subdomain, weil es Ihre Website flexibler ermöglicht. Durch die Verwendung der www-Subdomain können Sie Dinge wie das CDN/Cloud-Hosting einfacher nutzen, indem Sie einen CNAME in Ihren DNS-Datensätzen verwenden. Wenn Sie einen Provider wie Heroku oder Akamai als Host für Ihre Website verwenden, möchte der Anbieter DNS-Einträge aktualisieren können, falls der Datenverkehr von einem fehlerhaften Server auf einen fehlerfreien Server umgeleitet werden muss. Dies wird mithilfe von DNS-CNAME-Datensätzen eingerichtet, und die nackte Domäne kann keinen CNAME-Datensatz enthalten.

Es kann auch dazu beitragen, unnötigen Cookie-Verkehr zu verhindern, wenn statische Assets in einer anderen Domäne gehostet werden.

Eine gängige Website-Optimierung besteht darin, statischen Inhalt aus einer Subdomäne wie static.example.com bereitzustellen. Wenn Sie www verwenden, ist das kein Problem; Die Cookies Ihrer Website werden nicht an die statische Subdomäne gesendet (es sei denn, Sie haben dies ausdrücklich festgelegt).

Sobald Sie

sich entschieden haben, Sie werden den gesamten Datenverkehr, die immer umleiten möchten Version am Ende mit. Mit Apache kann dies mod_rewrite getan werden, wie in anderen Antworten gezeigt:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

Wenn Sie die wichtigsten Apache-Konfiguration zu bearbeiten sind in der Lage, eine weitere Option ist die Einrichtung zwei virtuelle Hosts, wo man nur auf die andere umleitet. Ich mache das für meine Website und es hat gut funktioniert.

<VirtualHost *:80> 
    ServerName example.com 

    Redirect permanent/http://www.example.com/ 
</VirtualHost> 
<VirtualHost *:80> 
    ServerName www.example.com 
    DocumentRoot /var/www 
    #The rest of your configuration 
</VirtualHost> 
+0

Ich bevorzuge es in .htaccess zu tun, um es projektweise zu halten. Ich habe meine Frage aktualisiert und meinen aktuellen .htaccess eingefügt. Könnten Sie einen Blick darauf werfen, ob ich diese Regel zusammen mit einigen anderen in meiner Datei verwenden könnte? Ich werde bereits umleiten, wenn ein Schrägstrich folgt, also könnte ich beide Bedingungen in eine Regel aufnehmen? –

0

Sie tun dies mit einer .htaccess Datei

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
0

Wenn Sie verwenden können .htaccess Sie auf einfache Weise umleiten:

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
2

Hier ist meine Antwort aus der SEO-Perspektive.

Wie SEO MOZ schlägt in ihrem fantastischen Beginner's Guide to SEO:

Oft werden zwei oder mehr Kopien des exakt gleichen Inhalts auf Ihre Website unter verschiedenen URLs angezeigt. Zum Beispiel können die folgenden URLs können alle beziehen sich auf eine einzelne Homepage:

Um Motoren zu suchen, diese erscheinen als fünf separate Seiten. Da der Inhalt auf jeder Seite identisch ist, kann dies dazu führen, dass die Suchmaschinen den Inhalt und seine potenziellen Rankings abwerten.

Daraus können wir schließen, dass es egal ist, ob Sie Ihre Seite mit oder ohne www. setzen. Es ist jedoch eine gute Idee, mit dem HTTP-Code 301 zu einer "einheitlichen" Domain umzuleiten. Apache 2 unterstützt .htaccess Einstellungen für diese Zwecke:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
+0

Vielen Dank für Ihre aufschlussreiche SEO-Perspektive :) Könnten Sie sich meine aktualisierte Frage ansehen? Ich habe meine aktuelle .htaccess-Datei hinzugefügt. Vielleicht kann diese Regel vereinfacht werden, um mit meiner Regel für Schrägstriche zu arbeiten? –

+0

Sie müssen nachfolgende Schrägstriche nicht umleiten, es ist in Ordnung, wenn Sie sie mit 'mod_rewrite' in Apache umschreiben. Es gibt eine Antwort darauf, wie man das hier auf SO macht - suche danach oder öffne eine neue Frage (aber suche danach :)) –

+0

Die folgenden Schrägstriche werden tatsächlich vom Laravel-Framework getrimmt. Es ist standardmäßig .htaccess in diesem Framework. –