Hintergrundinformation:
Ich habe stackoverflow nach einer bestimmten Lösung durchsucht und konnte keine finden, die meine Situation behoben hat. Vielen Dank im Voraus für jede Hilfe, die Sie anbieten können. Ihr Wissen wird geschätzt.
Ich habe mich entschieden, einen Vertrag zur „Umwandlung“ (in den Worten des Kunden) einer Joomla-Site in eine WordPress-Site anzunehmen. Alles läuft reibungslos, außer dass die Joomla-Site auf .html-Dateien verweist, sowohl in ihrer Navigation als auch im Inhalt von über 100 Beiträgen.
Anstatt jeden Beitrag einzeln durchzugehen und die Links zu aktualisieren oder einen SQL-Befehl auszuführen, um „.html“ aus URLs zu entfernen, habe ich mich entschieden, Druck auf .htaccess auszuüben, mit dem ich einigermaßen zufrieden bin.
Was ich versuche zu tun ↓
In WordPress habe ich benutzerdefinierte Permalinks aktiviert und es lautet wie folgt: /%category%/%postname%
Hier ist ein Beispiel dafür, was einer der alt URLs in den Posts sehen so aus:
http://the-site.com/category/the-webpage.html
Ich brauche die htaccess-Datei, um dem Webserver mitzuteilen, dass er die HTML-Datei entfernen soll, damit der Benutzer nach dem Besuch von “http://the-site.com/the-webpage.html” wird stattdessen gesendet an:
http://the-site.com/category/the-webpage
Ich richte die Seiten-Stubs so ein, dass sie dem Dateinamen der Joomla-Seiten folgen, also http://the-site.com/category/the-webpage wird funktionieren.
Meine Frage:
Können Sie mir helfen, die Lösung zum Entfernen von .html aus der URL zu finden, wenn jemand die Website besucht, selbst wenn die HTML-Datei nicht auf dem Server vorhanden ist?
So sah die .htaccess-Datei aus, bevor ich Änderungen vorgenommen habe:
# 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 die neueste .htaccess-Datei ab 17:35 Uhr Östlich:
# 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
Sie möchten die hinzugefügten Umschreibungen innerhalb der haben
<IfModule mod_rewrite.c
Abschnitt auch. Ein [L] Flag könnte auch hier gut hinzugefügt werden, da Sie nach der html-Umschreibung noch andere Umschreibungen haben und diese nicht zutreffen.– JAL
27. Juni 2010 um 21:03 Uhr
Ich habe die Umschreibungen in den Abschnitt verschoben, und es gibt mir immer noch einen 404. Könnte dies möglicherweise etwas mit Unterkategorien und meiner Permalink-Struktur zu tun haben?
– z0min
27. Juni 2010 um 21:09 Uhr