Ich habe eine alte Stelle, wo ich Unterstrichen und eine HTML-Erweiterung, die ichURL-Umleitung - Ordner zu ändern, zu ersetzen Unterstrichen mit Bindestrichen und Entfernen von HTML-Erweiterung
http://example.com/news/this_is_a_test.html -> http://example.com/post/this-is-a-test
http://example.com/portfolio/another_test.html -> http://example.com/project/another-test
auf folgende Weise umleiten möchten
Es gibt andere Ordner Abgesehen von News und Portfolio und eindeutig hat das letzte Segment der URL eine unbekannte Anzahl von Unterstrichen.
Hier ist der .htaccess, den ich gerade benutze (basierend auf meiner ursprünglichen Frage htaccess file to remove folder, and replace underscores with dashes). Es funktioniert für das Nachrichtenbeispiel, aber bricht, wenn ich für Portfolio versuche.
Irgendeine Idee, wo ich falsch liege?
RewriteEngine on
# redirect "/news_bar" to "/foo_bar"
RewriteRule ^news/(.+)$ /$1 [L,R]
#2 replace underscore with hypens
RewriteRule (.*)_(.*) $1-$2 [N,E=uscores:yes]
RewriteCond %{ENV:uscores} yes
RewriteRule ^(.+)$ /post/$1 [L,R]
RewriteRule ^portfolio/(.+)$ /$1 [L,R]
RewriteRule (.*)_(.*) $1-$2 [N,E=uscores:yes]
RewriteCond %{ENV:uscores} yes
RewriteRule ^(.+)$ /project/$1 [L,R]
# remove .html from end of url
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule^/%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule^%{REQUEST_URI}.html [NC,L]
Vielen Dank!
Hallo Mike, vielen Dank für Ihre Hilfe. Ich wollte kein PHP verwenden, aber das ist sicherlich eine Option !!! Denken Sie, dass es die optimale Lösung für diesen Fall ist? – Newfoundland
Meine ursprüngliche Lösung wäre optimaler gewesen, da alles fertig ist, bevor etwas an PHP gesendet wird. Das heißt, die Menge der verwendeten Ressourcen ist wirklich nichts, worüber man sich Sorgen machen müsste, und diese Route sollte auf jedem Server blitzschnell sein. Beachten Sie auch die Tatsache, dass ich hier keine regulären Ausdrücke verwende, die mehr Ressourcen benötigen als einfache String-Ersetzungen. –
Hallo, vielen Dank für Ihre Rückmeldung - ich werde PHP verwenden - funktioniert gut. Vielen Dank für Ihre Hilfe – Newfoundland