Entfernen “.html" aus der URL über .htaccess für WordPress website

Hintergrund-Informationen:

Ich gesucht habe stackoverflow für eine bestimmte Lösung und konnte Sie nicht finden, eine, die Feste meine situation. Vielen Dank im Voraus für jede Hilfe, die Sie anbieten können. Ihr wissen wird geschätzt.

Habe ich beschlossen, zu akzeptieren, einen Vertrag zu "konvertieren" (in der client-Wörter) eine Joomla-Website in eine WordPress-Website. Alles reibungslos, außer, dass die Joomla-Website-links zu .html-Dateien, sowohl in der navigation und im Inhalt von 100+ posts.

Anstatt jeden post einzeln und die Aktualisierung der links oder das ausführen eines SQL-Befehls zu entfernen ".html" von URLs, ich habe beschlossen, den Druck auf .htaccess, mit denen ich mich etwas komfortabler.


, Was ich versuche zu tun, ↓

In WordPress, habe ich benutzerdefinierte permalinks aktiviert, und es ist wie folgt:
/%category%/%postname%

Hier ein Beispiel, was man von den alten URLs in den posts sieht wie folgt aus:

http://the-site.com/category/the-webpage.html

Brauche ich die htaccess-Datei zu sagen, den webserver zu entfernen .html, sodass der Benutzer nach dem Besuch von "http://the-site.com/the-webpage.html" wird stattdessen gesendet:

http://the-site.com/category/the-webpage

Ich bin einrichten die Seite stubs zu Folgen, der name der Datei, die Joomla Seiten, so http://the-site.com/category/the-webpage arbeiten.


Meine Frage:

Können Sie mir helfen, entdecken Sie die Lösung entfernen .html von der URL, wenn jemand die Website besucht, selbst wenn die HTML-Datei nicht auf dem server vorhanden?


Hier ist, wie die .htaccess-Datei aussah, bevor ich änderungen vorgenommen:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Hier ist das neueste .htaccess-Datei wie von 5:35pm Ost:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

↑Neueste .htaccess änderungen arbeiten. Vielen Dank, Tim!

  • Sie wollen den Vorteil haben, schreibt in die <IfModule mod_rewrite.c Abschnitt, zu. Ein [L] flag könnte gut sein, um hier hinzufügen, auch, da Sie andere schreibt, nachdem das html ein, und Sie gelten nicht.
  • Ich zog die Neuprogrammierungen innerhalb des <IfModule> Kapitel, und es gibt mir immer noch einen 404. Könnte das vielleicht etwas damit zu tun haben Unterkategorien und meine permalink-Struktur?
InformationsquelleAutor chris m | 2010-06-27
Schreibe einen Kommentar