Oxid 6.1.0 CE, force_sid, https & 404

Moin,

so langsam verzweifle ich. Habe vorhin das Update auf v6.0.2 auf tv6.1.0 via Composer ausgeführt, hat nach Anfangsschwierigkeiten geklappt, nachdem ich eine Modifikation der composer.json durchführte (“require-dev”: {“oxid-esales/testing-library”: “^v5.0.0”)…

Ich hatte in den vergangenen Wochen den mod_rewrite-Fehler im Backend, den ich dann auch mal in Angriff genommen habe. Eine Änderung der config_inc.php schaffte Abhilfe ($this->sShopURL = ‘https://www.retroniks.de/shop/source’; // eShop base url, required statt wie vorher “http”).

Nun gut - begann dann den ersten Artikel einzustellen und laufe knallhart in den force_sid-Fehler, der öfter mal geschildert wurde. Also in den vergangenen sechs Stunden alle Lösungsansätze hier durchgelesen und Trial-and-Error gespielt… leider bleibts beim Error.

Rufe ich den einzig verfügbaren Artikel im Shop auf, so bekomme ich einen 404…

Inhalt meiner httpaccess, die im Ordner /shop/source liegt:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /shop/source

    RewriteCond %{REQUEST_URI}     config\.inc\.php [NC]
    RewriteRule ^config\.inc\.php  index\.php       [R=301,L]

    RewriteCond %{REQUEST_URI} setup   [NC]
    RewriteRule ^setup(.*)$    Setup$1 [R=301,L]

    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]

    RewriteCond %{REQUEST_URI} oxseo\.php$
    RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
    RewriteRule oxseo\.php$ oxseo.php?mod_rewrite_module_is=on [L]

    RewriteCond %{REQUEST_URI} !(\/admin\/|\/Core\/|\/Application\/|\/export\/|\/modules\/|\/out\/|\/Setup\/|\/tmp\/|\/views\/)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !(\.html|\/|\.jpe?g|\.css|\.pdf|\.doc|\.gif|\.png|\.js|\.htc|\.svg)$ %{REQUEST_URI}/ [NC,R=301,L]

    RewriteCond %{REQUEST_URI} !(\/admin\/|\/Core\/|\/Application\/|\/export\/|\/modules\/|\/out\/|\/Setup\/|\/tmp\/|\/views\/)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (\.html|\/)$ oxseo.php


    RewriteCond %{REQUEST_URI} (\/out\/pictures\/generated\/)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (\.jpe?g|\.gif|\.png|\.svg)$ getimg.php [NC]

    RewriteRule ^(vendor/) - [F,L,NC]
    RewriteRule ^migration - [R=403,L]
</IfModule>

# disabling log file access from outside
<FilesMatch "(EXCEPTION_LOG\.txt|\.log|\.tpl|pkg\.rev|\.ini|pkg\.info|\.pem|composer\.json|composer\.lock|test_config\.yml)$">
   <IfModule mod_authz_core.c>   
       Require all denied
   </IfModule>
   <IfModule !mod_authz_core.c>
       Order allow,deny
       Deny from all   
   </IfModule>
</FilesMatch>

# Prevent .ht* files from being sent to outside requests
<Files ~ "^\.ht">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
</Files>

Options -Indexes
DirectoryIndex index.php index.html
</code>/

Gerne liefere ich mehr Informationen auf Zuruf…

Vielen Dank im Voraus,
Ralf

Offenbar versteht OXID keine Kategorienamen die nur aus Ziffern bestehen.

2 Likes

Ach - eben wollte ich schon schreiben ‘meine Kategorien tragen doch eindeutige Bezeichnungen aus Buchstaben bestehend’, aber klar - Unterkategorie ‘2600’. Muss ich mal prüfen…

Nachtrag: Bingo! Genau das ist der Fehler. Eine Änderung in einen alphanumerischen Bezeichner behebt den Fehler.

Vielen Dank, leofonic!

Grüße,
Ralf

1 Like

Hallo leofonic,

das ist ja schrecklich! Wir wollen einen Batterieshop aufsetzen und wie vielleicht bekannt bestehen Baugrößen von Batterien häufig nur aus Ziffern: 2025, 2032, 2325, usw.
Anscheinend nützt es nicht mal, einen unauffälligen Punkt “.” oder “-” an das Ende des Kategorienamens zu setzen. Warum gibt es bei OXID gar keinen Hinweis dazu? Oder habe ich was übersehen?

Im Backend kann man beliebig viele Kategorien anlegen, die nur aus Ziffern bestehen, aber angezeigt werden sie nicht. Ich bin relativ fassungslos…

Gruß

Hi mediaworker,

naja, so dramatisch ist es an sich ja nicht. Auch in Euerem Fall kann man ja z.B. den offiziellen Zusatz ‘CR’ hinzufügen, schon funktioniert alles wie gewünscht. Ich hab das dann ähnlich gehalten, z.B. ‘VCS-2600’ statt ‘2600’ und alles war im Lot.

Grüße,
Ralf

Ich vermute, weil dieses Phänomen gar nicht bekannt ist. Mach doch einfach einen Bugeintrag dazu auf :wink:

Wir forschen noch, denn eindeutig reproduzieren lässt sich das im Demoshop nicht. Wir haben evtl. eine besondere Konstellation: etwa 3.000 Kategorien mit dem “Gener. Import” in den Shop eingelesen. Es wird kein Fehler angezeigt, aber er importiert etwa 60 Einträge zu wenig?!
Ich war nur so erstaunt die Aussage von leofonic zu finden, vorher ging ich davon aus, dass es etwas mit unserem Shop zu tun hat…
Ich melde mich, wenn ich mehr weiß :wink:

Glaub nicht dass das Gleiche ist, Kategorien die nur aus Ziffern bestehen können ja im BE angelegt werden und erscheinen auch im Topmenü, erst wenn man sie aufrufen will kommt 404 statt der Kategorie.

Unsere Recherchen gehen weiter:

Ein 404 passiert nur in Ausnahmefällen, aber es passiert auf jeden Fall eine Weiterleitung, wenn man auf einer Seite

http://server.de/Knopfzelle/

die Sub-Kategorie 2031 aufruft, wird die URL

http://server.de/Knopfzelle/2031/

auf http://server.de/Knopfzelle/ weiter geleitet. Unsere Vermutung ist, dass OXID annimmt, er hat es mit einer Seitenzahl zu tun und da es die nicht gibt, springt er zurück auf die aktive Kategorie.

Controller/ArticleListController, Zeile 245:

if ($pageCount && (($pageCount - 1) < $currentPageNumber)) {
   \OxidEsales\Esho\Core\Registry::getUtils()->redirect($this->getActiveCategory()->getLink(), false);
}

Wenn man die Bedingung umformuliert

&& ($currentPageNumber < 1000)

dann macht er das nicht. Leider wird dann aber trotzdem noch der falsche Inhalt dargestellt, weil OXID beim Rendern des Inhalts anscheinend immer der Meinung ist, dass es eine URL mit Seitenzahl ist und daher den Inhalt der aktiven Kategorie ausgibt. Die Frage ist nur wo? Dann könnten wir dazu ein Modul erstellen…

Als Bug eingetragen: https://bugs.oxid-esales.com/view.php?id=6928