2017-11-07 4 views
0

Ich habe versucht, eine neue .htaccess-Datei in das Stammverzeichnis einer Drupal-Website mit dem folgenden Code hinzuzufügen:.htaccess-Code brach Website?

# Redirect all users to access the site WITH the 'www.' prefix 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} !\.([a-z-]+\.[a-z]{2,6})$ [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

aber jetzt bekomme ich diesen Fehler auf jeder Seite, die nicht die Homepage ist. Bitte helfen! Also, wenn ich zu www.website.com/products gehe ich diese:

Not Found 
The requested URL /products was not found on this server. 

Apache/2.4.7 (Ubuntu) Server at www.website.com Port 443 

Ist der „nicht gefunden“ im Zusammenhang mit dem .htaccess-Code oben?

+0

Ich denke, das ist wahrscheinlich nicht die Ursache. Dieser Ausschnitt ist nur da, um 'www.' im Domainnamen zu erzwingen. Es macht nichts mehr, außer dass es nicht versucht, ein "www." -Präfix hinzuzufügen, wenn die Anfrage in etwas endet, das wie eine Datei.extension aussieht. – jaswrks

+0

Danke für die Antwort! Ich dachte, es könnte nur zufällig sein, dass ich den Fehler bemerkte, als ich die .htaccess-Datei hinzufügte, aber ich war mir nicht sicher. Wenn mod_rewrite nicht eingeschaltet war, hätte das Hinzufügen von .htaccess etwas durcheinander gebracht und Apache müsste neu gestartet werden? – foolstack

+0

Ja, wenn Sie dies verwenden, ohne 'mod_rewrite' aktiviert zu haben und dann aktiviert zu haben, wäre ein Neustart für diese Änderung des Kick-in erforderlich; d.h., um das neue Modul zu laden. Das heißt, unter normalen Umständen müssen Sie Apache nach Änderungen an Ihrer .htaccess-Datei nicht neu starten, nein. – jaswrks

Antwort

0

Ok, so fand ich das Problem hier draußen war dass ich eine .htaccess Datei hochgeladen habe und nicht die eine, die schon da war, da die Datei auf dem Server versteckt war, so versehentlich versehentlich überschrieb ich die Drupal .htaccess Datei, die dort versehentlich war. Sobald wir zu der ursprünglichen Datei .htaccess zurückgekehrt sind und diesen Code hinzugefügt haben, funktioniert alles gut.

0

Port 443 wird normalerweise für HTTPS verwendet. Der beste Weg, um damit umzugehen, ist mit Vhosts. Mit Hilfe der vhost Route, würden Sie versuchen, so etwas wie:

<VirtualHost *:80> 
    ServerName www.example.com 
    Redirect "/" "https://www.example.com/" 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName www.example.com 
    # ... SSL configuration goes here 
</VirtualHost> 

die .htaccess-Weg zu gehen, können Sie so etwas versuchen:

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\.example\.com* 
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]