ilch Forum » Ilch CMS 2.x » Installation und Upgrades » .htaccess

Geschlossen
  1. #1
    User Pic
    BEE MAYA Mitglied
    Registriert seit
    17.03.2017
    Beiträge
    101
    Beitragswertungen
    1 Beitragspunkte
    Hi,

    ich hätte mal ne Frage lächeln oder vielleicht weiß einer ein Lösung unseres kleinen Problems mit der Testseite, die wir mal on gestellt haben. In der ilch 1.1 hatten wir die .htaccess folgendermaßen eingestellt um mit unserer "intro" Seite zu starten: "DirectoryIndex intro.html".
    Wenn wir nun diesen Befehl in die neue .htaccess schreiben, funktioniert der Webseiten Aufruf auch mit dem Start des Intros, die .htaccess sieht dann folgendermaßen aus:

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

    Das Problem das wir dann allerdings haben, wenn man die Login Daten eingibt, startet die Seite wieder mit dem "intro". Das selbe passiert wenn man sich ausloggt. Hat jemand eine Idee, wie man das durch ändern der .htaccess verhindern kann? .. Ich hab mir die Beschreibung auch in Wiki angesehen, aber iwi werd ich daraus nicht schlau. lächeln

    Danke
    BEE


    verwendete ilch Version: 2.0 (alpha)

    betroffene Homepage: purple-heart.000webhostapp.com
    Alle wege führen nach Rom..
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Nach dem Login leitet ilch wohl auch / weiter und, da dort dann dein DirectoryIndex nicht auf die index.php zeigt, wird das Intro geladen.

    Durch die Aktivierung des Mod_Rewrite in ilch2.0 wird ja aber der Verweis auf die index.php aus den Adressen entfernt, so auch beim Login und Logout. Es wird also die Adresse ohne index.php aufgerufen.

    Du könntest also das Ziel des Loginforms bzw. des Redirect anpassen, damit auf die index.php geleitet wird.

    Das könntest du in der application\modules\user\boxes\Login.php tun.

    Dazu könntest du
        public function render()
        {
            if (isset($_SESSION['redirect'])) {
                $redirectUrl = $_SESSION['redirect'];
            } else {
                $redirectUrl = $this->getRouter()->getQuery();
            }
    
            if (empty($redirectUrl)) {
                $redirectUrl = 'index.php';
            }
    
            if ($this->getUser()) {
                $access = new Accesses($this->getRequest());
                $this->getView()->set('userAccesses', $access->hasAccess('Admin'));
            }
            $this->getView()->setArray([
                'regist_accept' => $this->getConfig()->get('regist_accept'),
                'redirectUrl' => $redirectUrl
            ]);
        }

    einfügen.

    Das sollte entsprechend auch für den Logout möglich sein.

    Allerdings wäre es eher ratsam die Intropage anders zu lösen oder ggf. ganz abzuschaffen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    BEE MAYA Mitglied
    Registriert seit
    17.03.2017
    Beiträge
    101
    Beitragswertungen
    1 Beitragspunkte
    Danke Mairu für die schnelle Antwort,

    hab das mal so gemacht und mit dem Login funzt das auch, wie Du geschrieben hast.
    Beim Logout, finde ich leider die php nicht lächeln ..wie und wo ich etwas hinzufügen sollte..

    Vielleicht regeln wir es mit der Intro so, die über den alten Webacc laufen zu lassen und von da weiterzuleiten.

    Gruß
    BEE
    Alle wege führen nach Rom..
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Stimmt, der Logout ist ja wo ganz anders.

    application\modules\admin\controllers\admin\Login.php

    Da ist ganz unten der Redirect geregelt.
            if ($this->getRequest()->getParam('from_frontend')) {
                $this->redirect([]);
            } else {
                $this->redirect(['module' => 'admin', 'controller' => 'login', 'action' => 'index']);
            }


    Da könntest du in der markierten Zeile tätig werden.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Installation und Upgrades

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten