it-swarm.com.de

Wie konfiguriere ich Joomla oder Apache für v1 SEF Urls?

Ich habe das große Vergnügen, eine Joomla 1. Site auf v3.5 zu aktualisieren (keine Kommentare aus der Erdnussgalerie , bitte , lol ). Alles in allem läuft es gut, aber die alte Version des Schreibens von SEF-URLs unterscheidet sich erheblich von Version 3, und ich bin kein Experte für Apache/htaccess.

Die überwiegende Mehrheit der Links, die das größte Problem darstellen, ist die Verwendung einer benutzerdefinierten Komponente für Produkte, die verkauft werden. wie das:

www.example.com/component/option,com_virtuemart/page,shop.product_details/flypage,shop.flypage/product_id,1/category_id,1/manufacturer_id,0/Itemid,59

Es gibt viele wichtige Joomla-Links wie diese, die konvertiert werden sollten, aber weniger kritisch sind:

www.example.com/content/view/106/159/

Dies sind die beiden derzeit verwendeten .htaccess-Sätze. Ich habe versucht, den SEF-Abschnitt v1 in die neue .htaccess-Datei einzufügen, aber er beeinträchtigt die Arbeit mit v3.5, und die 404-Fehler scheinen bestehen zu bleiben.

## Begin - Joomla! v1.0 SEF Section (from old site).
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
## End - Joomla v1 SEF Section.

## Begin - Joomla! v3.5 core SEF Section.
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
## End - Joomla! core SEF Section.

So wie es jetzt ist, führen Links wie die oben genannten zu einem 404-Fehler. Die einfachste "simplistische" Lösung, die ich mir vorstellen kann (aber ich weiß nicht, wie ich sie einrichten soll), ist ein Ordner namens \component (Singular) und innerhalb dieser Verwendung .htaccess und mod_rewrite auf eine Art und Weise, die Apache analysiert, die "Abfragezeichenfolge" erfasst und so etwas in eine benutzerdefinierte Komponente umleitet, in der wir alle Konvertierungsprobleme behandeln und entsprechend umleiten:

www.example.com/component/option,com_virtuemart/.../Itemid,59 schreibt zu www.example.com/index.php?option=com_mycomponent&...&Itemid=59

Ist dies ein praktischer Ansatz, und wenn ja, wie würde die .htaccess-Datei aussehen, und wenn nicht, gibt es eine andere Lösung, die mir nicht bekannt ist (nicht mehr sehr zuverlässige J1.0-Dokumentation da draußen)?

4
GDP

Ich habe es geschafft, eine Lösung zusammenzustellen, ohne .htaccess zu verwenden, obwohl ich an einer saubereren Lösung interessiert bin, wenn jemand eine hat.

  1. Ich habe ein System-Plugin erstellt, das wirklich nichts im herkömmlichen Sinne tut, da es außer _construct () keine Methoden hat.
  2. In der _construct() -Methode habe ich einfach nach Strings in der URI gesucht, die in den alten Links gefunden wurden und nur in Joomla v1 vorkommen.
  3. Wenn es gefunden wurde, wurde der seltsame Joomla SEF-String in etwas Verwendbares zerlegt. Damit habe ich die neue J3.5-URL erstellt, die ich benötige, und $app->redirect() verwendet, um den Benutzer dorthin zu senden.

Ich bin nicht verliebt, aber es funktioniert.

4
GDP