2016-07-05 3 views
1

Ich weiß, dass es eine bajillianische Anzahl von Fragen mit diesem Titel gibt und ich habe sie alle ausprobiert. Was ich versuche zu tun, umleitenEntferne Schrägstriche am Ende der URL

localhost/site/tours/picnics/ 

zu

localhost/site/tours/picnics 

aber jeder Code, den ich versucht habe, (dies zum Beispiel)

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 

leitet mich zu localhost/picnics für irgendein Grund. Ich verstehe nicht, warum es passiert. Ich habe sogar versucht RewriteBase /site/, aber es machte keinen Unterschied. Kann jemand in diesem Code auf das Problem hinweisen?

Edit: Hier ist meine komplette .htaccess Datei

RewriteEngine On 
#RewriteBase /site/ 
RewriteRule ^destinations/(.*)$ destinations.php?destId=$1 [NC,L] 
#RewriteRule ^tours/? tour-listing.php [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 

RewriteRule ^tours/?(.*)$ tour-listing.php?cat=$1 [NC,L] 
RewriteRule ^tour/([0-9a-zA-Z]+)$ tour.php?id=$1 [NC,L] 
RewriteRule ^hotel/([0-9a-zA-Z]+)$ hotel-details.php?id=$1 [NC,L] 
+0

In localhost/site/ – VeeK

Antwort

1

dazu ändern Regel:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s] 
RewriteRule /$ /%1 [R=301,L,NE] 

$1 fängt Wert relativ zum aktuellen Verzeichnis nur aber %1 von %{THE_REQUEST} erfasst wird, dass hat die ursprüngliche und vollständige REQUEST-URL.

+0

Stellen Sie sicher, dass diese Regel nur unterhalb der 'RewriteBase' Zeile bleibt – anubhava

+0

Es funktioniert, aber es fügt ein/nach' localhost' hinzu, dh jedes Mal gehe ich auf den Link 'localhost/site/tours/picknick/'es wird' localhost // site/tours/picknick', geh wieder 'localhost /// site/tours/picknick /' und wieder 'localhost //// site/tours/picknick /' – VeeK

+1

Wunderbar. Es klappt. Ich danke dir sehr – VeeK