2017-06-14 5 views
0

Nach einigen Änderungen auf meiner Wordpress-Website gibt es viele Links im Internet, auf die nicht mehr zugegriffen werden kann. Die alten URLs aussehen http://example.com/blog/2017/05/post ans nun diese URL http://example.com/posthtaccess rewriterule, um Ordner zu überspringen

ich diesen Code zeigen sollte in .htaccess versucht

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^blog/([^/]+)/([^/]+)/?$ $1 [R=301,L] 

Dies funktioniert nicht. Dann habe ich es versucht.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^blog/././?$ $1 [R=301,L] 

Dies funktioniert auch nicht.

+1

Und "funktioniert nicht" bedeutet was _exactly_? Was geschieht? Erhalten Sie einen Fehler? Ein falsches Verhalten? Nichts passiert? Zerbricht das Universum? – arkascha

Antwort

0

Wahrscheinlich ist es das, was Sie suchen:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?blog/([^/]+)/([^/]+)/(.+)/?$ $1 [R=301,L] 

und einen allgemeinen Hinweis: Sie sollten immer solche Regeln innerhalb der http-Server (virtuellen) Host-Konfiguration anstelle der Verwendung von dynamischen Konfigurationsdateien zu platzieren bevorzugen (.htaccess Style-Dateien). Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den Server wirklich. Sie werden nur als letzte Option für Situationen angeboten, in denen Sie keine Kontrolle über die Host-Konfiguration haben (lesen Sie: wirklich günstige Hosting-Service-Provider) oder wenn Sie eine Anwendung haben, die eigene Schreibregeln schreibt (was ein offensichtlicher Sicherheitsalarm ist)).