Frage

Ich möchte: alle Verbindungen, die Dateinamen nicht enthält (nicht .html, .jpg, .png, CSS-) umleiten mit Zustand 301 in dem Verzeichnis, zum Beispiel: http://mysite.com/article/ Aber http://mysite.com/article/article-15.html nicht Umleitungen . Was regulat Ausdruck muß ich schreibe für das Hinzufügen von Slash zu virtuellen Verzeichnissen in .htaccess?

War es hilfreich?

Lösung

Ich denke, die folgenden funktionieren könnte:

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

Wenn es um mod_rewrite kommt, kann ich nie ohne Prüfung sicher sein, obwohl ...

Andere Tipps

Klarstellung erforderlich:

die URL Gegeben: http: // server / path / file

Bekommt das umgeleitet: http: // server / path /

Oder macht es erhalten umgeleitet: http: // server / path / file /

Wie in: Wollen Sie die Umleitungen an den übergeordneten Pfad zu gehen, oder haben Sie nur einen Schrägstrich hinzufügen möchten, und übernehmen Verzeichnis aus dem Strompfad

MBs RewriteRule oben wird auf Wegen wie /a scheitern, weil es mindestens zwei Zeichen nach dem Schrägstrich muss übereinstimmen. Außerdem paßt es nur auf Verzeichnis-URLs.

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

Ist der Zweck dieser Geschichte Verschmutzung / falsch-negative Ergebnisse zu reduzieren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top