it-swarm.com.de

Htaccess leitet von '/%postname%.html' nach '/% postname%' um

Ich besitze eine auf Drupal 5.x basierende Website für Reisebewertungen, die ich auf Wordpress 3.x (gleicher Domainname) umstelle.

Die Drupal-Site ist folgendermaßen aufgebaut:

  • www.example.com/travel-guides (dies sind Top-Level-Seiten) - dies sind nur eine Handvoll.
  • www.example.com/<filename>.html (Dateiname ist der Name eines Ortes/einer Sehenswürdigkeit usw.). - macht den Großteil des Inhalts auf der Website aus.

In WordPress ist das Setup ziemlich einfach. Der gesamte Inhalt folgt einem einfachen Permalink:

www.example.com/postname

Wie lege ich in .htaccess eine Regel fest, um alle Seiten als Massenumleitung weiterzuleiten? Es gibt über 600 Seiten, und ich möchte nicht für alle manuell Weiterleitungsregeln festlegen.

3
user10718

Über den WordPress-Umschreiberegeln hinzufügen:

RedirectMatch permanent ^/([^/]+)\.html$ /$1

Das wird example.com/foo.html fangen, aber nicht example.com/travel-guides/foo.html. Um alle URLs abzufangen, die mit .html enden, entfernen Sie den ersten ^ aus dem Muster.

Um alle URLs umzuleiten, die mit .html enden, außer denen in travel-guides, benötigen Sie mod_rewrite:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/travel-guides/
RewriteRule ([^/]+)\.html$  /$1 [L,R=301]
3
fuxia