2017-03-17 10 views
0

Ich verstehe, dass ähnliche Fragen gestellt worden sind und ja, ich habe und alle relevanten Antworten gelesen und alles für einige Zeit versucht. Ich kann jedoch nicht herausfinden, was der Fehler ist. Ich glaube, das Skript ist korrekt. Was ist los?htaccess Schrägstrich Fehler

Mein Problem ist, dass ich nicht den Schrägstrich in der URL erscheinen lassen kann. Daher bekomme ich 2 Versionen der gleichen Seite. (Duplicate Content Problem?) Zum Beispiel:

htttps: //www.example.com/faq.php

&

htttps: //www.example.com/faq.php/

Ich hatte gehofft, immer den abschließenden Schrägstrich automatisch hinzuzufügen, also gibt es keine andere Version des selben.

Hier ist meine .htaccess-Code:

<IfModule mod_rewrite.c> 

    RewriteEngine On 

    #Redirect anything to http://www (WORKING FINE) 
    RewriteCond %{HTTP_HOST} ^example.com [NC] 
    RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 

    #Redirect anything to https (WORKING FINE) 
    RewriteCond %{HTTPS} !on 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

    #Redirect to trailing slash (NOT WORKING!) 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !(.*)/$ 
    RewriteRule ^(.*)$ https://example.com/$1/ [L,R=301] 

    #Redirect /index.php to/(WORKING FINE) 
    RewriteCond %{THE_REQUEST} ^.*/index\.php 
    RewriteRule ^(.*)index.php$ /$1 [R=301,L] 

</IfModule> 

Auch eine weitere Frage auf derselben.

Wie kommt es, dass wenn ich zu meiner Domäne gehe, wo der abschließende Schrägstrich "/" nicht in der URL angezeigt wird. Dann kopiere ich & fügen Sie es in einen Texteditor ein, der als https://www.example.com/ mit dem abschließenden Schrägstrich kommt.

Und das gleiche passiert nicht, wenn ich eine URL von irgendeiner Unterseite wie oben erwähnt zum Beispiel /faq.php kopiere/paste (NICHT shwoing als: /faq.php/).

Ich weiß, dass der abschließende Schrägstrich in der Stammdomäne notwendig ist, um eine HTTP-Anfrage gültig zu machen, aber warum zeigen die Browser das nicht? Nur eine ästhetische Sache? Jedenfalls mache ich mir mehr Gedanken über die obige Frage.

Vielen Dank für die Hilfe!

Antwort

0

Allerdings kann ich nicht herausfinden, was der Fehler ist. Ich glaube, das Skript ist korrekt. Was ist los?

Sie überprüfen, ob die Datei vor dem Umleiten nicht existiert. Dies ist nicht das, was Sie wollen, so entfernen Sie diese Zeile:

RewriteCond %{REQUEST_FILENAME} !-f 

Wie kommt es, dass, wenn ich gehen, um meine Domäne, in der Schrägstrich „/“ ist nicht in der URL zeigt. Dann kopiere ich & fügen Sie es in einen Texteditor ein, der als https://www.example.com/ mit dem abschließenden Schrägstrich kommt.

Einige Browser tun dies automatisch. Es ist wahrscheinlich getan, weil das die tatsächliche URL angefordert wird. Es sieht auch eher wie eine URL aus.

+0

Vielen Dank für Ihre Antwort. Bin dankbar! Aus irgendeinem seltsamen Grund funktioniert es nicht. Ich bin nur mit: (. *) RewriteBase/ RewriteCond% {REQUEST_URI} (. *)/$ RewriteRule^$ https://example.com/$1/ [L, R = 301] Das Ergebnis, das ich jetzt bekomme, ist: "www.example.com hat dich zu oft umgeleitet. " ERR_TOO_MANY_REDIRECTS Und die Seite wird überhaupt nicht angezeigt. –

+0

Du hast die letzte Zeile von deiner Frage geändert. Es sollte' RewriteRule^(. *) $ https://example.com/$1/ sein. [L, R = 301] '. – Anonymous

Verwandte Themen