.htaccess mod Rewrite-301-Redirect
-
09-06-2019 - |
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?
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?