Ergebnis 1 bis 12 von 12

Thema: Contao 4 Web ohne app.php aufrufen

  1. #1
    Contao-Nutzer
    Registriert seit
    30.08.2009.
    Beiträge
    66

    Standard Contao 4 Web ohne app.php aufrufen

    Hallo zusammen,

    trotz Bemühen der internen Suche und Google habe ich leider keine Antwort auf das folgende Problem gefunden - sofern es für mein Anliegen jedoch schon einen Thread gibt, sorry, dann freue ich mich über einen kurzen Hinweis zum entsprechenden Thread.

    Folgendes:
    Ich habe nach mehreren Anläufen Contao per contao-manager.phar.php installiert - hat hin und wieder gezickt, letztendlich hat es dann aber funktioniert.
    Soweit alles prima, allerdings kann ich sowohl das Backend als auch das Frontend nur per /app.php/ erreichen / aufrufen...

    Ich habe jetzt sicherlich schon 30 Contao 4 Installationen durchgeführt (allerdings noch nie bei Hetzner...) und hatte dieses Problem noch nicht.
    Was mache ich falsch, bzw. wo liegt der Fehler, bzw. was muss wo / wie geändert werden?


    Vielen Dank für eure Hilfe

  2. #2
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Bei einem Apache sollte eine .htaccess sich drum kümmern, dass die Angabe von app.php nicht notwendig ist. Ggf. ist dies nicht auf dem Webserver aktiv.

    Sollte ein anderer Webserver, z.B. ngingx eingesetzt werden, muss es dementsprechend konfiguriert werden.

  3. #3
    Contao-Nutzer
    Registriert seit
    30.08.2009.
    Beiträge
    66

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    Bei einem Apache sollte eine .htaccess sich drum kümmern, dass die Angabe von app.php nicht notwendig ist. Ggf. ist dies nicht auf dem Webserver aktiv.

    Sollte ein anderer Webserver, z.B. ngingx eingesetzt werden, muss es dementsprechend konfiguriert werden.

    Danke für die schnelle Antwort.

    Da auf diesem (Level 19) Server bereits Webs des Kunden liegen, und ich deshalb die PHP Version nicht einfach umstellen konnte, habe ich im /web Verzeichnis eine eigene htaccess mit der entsprechenden PHP Versions-Anweisung erstellt - ist das evtl. das Problem, bzw. muss ich hier noch etwas eintragen?
    Ob dort ein Apache läuft kann ich leider auf Anhieb nicht sagen - ich seh das nirgends im Adminbereich des Hosters...

    Hast du mir hier evtl. noch einen Tipp?

    Danke

  4. #4
    Contao-Nutzer Avatar von spotbot2k
    Registriert seit
    26.06.2017.
    Beiträge
    65

    Standard

    Zitat Zitat von BCBCBC Beitrag anzeigen
    Danke für die schnelle Antwort.

    Da auf diesem (Level 19) Server bereits Webs des Kunden liegen, und ich deshalb die PHP Version nicht einfach umstellen konnte, habe ich im /web Verzeichnis eine eigene htaccess mit der entsprechenden PHP Versions-Anweisung erstellt - ist das evtl. das Problem, bzw. muss ich hier noch etwas eintragen?
    Ob dort ein Apache läuft kann ich leider auf Anhieb nicht sagen - ich seh das nirgends im Adminbereich des Hosters...

    Hast du mir hier evtl. noch einen Tipp?

    Danke
    Wurde die htaccess ggf. überschrieben? In der Standartinstallation enthält die die Konfiguration für die Weiterleitung:

    Code:
    <IfModule mod_rewrite.c>
        RewriteEngine On
    
        # Determine the RewriteBase automatically and set it as environment variable.
        # If you are using Apache aliases to do mass virtual hosting or installed the
        # project in a subdirectory, the base path will be prepended to allow proper
        # resolution of the app.php file and to redirect to the correct URI. It will
        # work in environments without path prefix as well, providing a safe, one-size
        # fits all solution. But as you do not need it in this case, you can comment
        # the following 2 lines to eliminate the overhead.
        RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
        RewriteRule ^(.*) - [E=BASE:%1]
    
        # Sets the HTTP_AUTHORIZATION header removed by Apache
        RewriteCond %{HTTP:Authorization} .
        RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # Redirect to URI without front controller to prevent duplicate content
        # (with and without `/app.php`). Only do this redirect on the initial
        # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
        # endless redirect loop (request -> rewrite to front controller ->
        # redirect -> request -> ...).
        # So in case you get a "too many redirects" error or you always get redirected
        # to the start page because your Apache does not expose the REDIRECT_STATUS
        # environment variable, you have 2 choices:
        # - disable this feature by commenting the following 2 lines or
        # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
        #   following RewriteCond (best solution)
        RewriteCond %{ENV:REDIRECT_STATUS} ^$
        RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
    
        # If the requested filename exists, simply serve it.
        # We only want to let Apache serve files and not directories.
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteRule ^ - [L]
    
        # Rewrite all other queries to the front controller.
        RewriteRule ^ %{ENV:BASE}/app.php [L]
    </IfModule>
    
    <IfModule !mod_rewrite.c>
        <IfModule mod_alias.c>
            # When mod_rewrite is not available, we instruct a temporary redirect of
            # the start page to the front controller explicitly so that the website
            # and the generated links can still be used.
            RedirectMatch 302 ^/$ /app.php/
            # RedirectTemp cannot be used instead
        </IfModule>
    </IfModule>
    Damit das ganze funktioniert soll entweder mod_rewrite, oder mod_alias auf dem Server aktiv sein. Wenn es sich um Apache handelt versteht sich.

    UPDATE: nach dem due .htaccess nutzt ist es wahrscheinlich Apache. Nginx unterstützt die nicht wirklich - https://www.nginx.com/resources/wiki...ache-htaccess/
    Geändert von spotbot2k (07.09.2018 um 12:43 Uhr)

  5. #5
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von BCBCBC Beitrag anzeigen
    Danke für die schnelle Antwort.

    Da auf diesem (Level 19) Server bereits Webs des Kunden liegen, und ich deshalb die PHP Version nicht einfach umstellen konnte, habe ich im /web Verzeichnis eine eigene htaccess mit der entsprechenden PHP Versions-Anweisung erstellt - ist das evtl. das Problem, bzw. muss ich hier noch etwas eintragen?
    Ob dort ein Apache läuft kann ich leider auf Anhieb nicht sagen - ich seh das nirgends im Adminbereich des Hosters...

    Hast du mir hier evtl. noch einen Tipp?

    Danke
    Theoretisch liefert Contao die .htaccess selbst mit. Siehe https://github.com/contao/manager-bu.../web/.htaccess

    Diese sollte bei dir installiert sein.

    Hetzner ist normalerweise auf Apache unterwegs. Du kannst dir eine info.php in den web Ordner legen. Darin sollten auch die Informationen zum Webserver sichtbar werden. (Achja, danach wieder löschen.)

    PHP-Code:
    <?php phpinfo();

  6. #6
    Contao-Nutzer
    Registriert seit
    30.08.2009.
    Beiträge
    66

    Standard

    Zitat Zitat von spotbot2k Beitrag anzeigen
    Wurde die htaccess ggf. überschrieben? In der Standartinstallation enthält die die Konfiguration für die Weiterleitung:
    Danke für die Antwort.

    Bingo - es sieht wohl so aus, dass die von mir zuerst angelegte htaccess im /web Verzeichnis nicht vom Installtool überschrieben wurde - zum Einen ja ganz gut, da sonst meine PHP Einstellungen weg währen...zum Anderen doof, da die notwendigen Contao 4 Einträge fehlen....

    Ich passe die htaccess im /web Verzeichnis nun an und melde mich dann mit dem Ergebnis...
    Geändert von BCBCBC (07.09.2018 um 12:57 Uhr)

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von BCBCBC Beitrag anzeigen
    Da auf diesem (Level 19) Server bereits Webs des Kunden liegen, und ich deshalb die PHP Version nicht einfach umstellen konnte, habe ich im /web Verzeichnis eine eigene htaccess mit der entsprechenden PHP Versions-Anweisung erstellt - ist das evtl. das Problem, bzw. muss ich hier noch etwas eintragen?
    Du hast dadurch vermutlich die default .htaccess von Contao überschrieben und daher funktioniert es nicht. Lösche die .htaccess und führe composer install oder vendor/bin/contao-console contao:install-web-dir aus.

  8. #8
    Contao-Nutzer
    Registriert seit
    30.08.2009.
    Beiträge
    66

    Standard

    Zitat Zitat von webstar Beitrag anzeigen
    Theoretisch liefert Contao die .htaccess selbst mit. Siehe https://github.com/contao/manager-bu.../web/.htaccess

    Diese sollte bei dir installiert sein.

    Hetzner ist normalerweise auf Apache unterwegs. Du kannst dir eine info.php in den web Ordner legen. Darin sollten auch die Informationen zum Webserver sichtbar werden. (Achja, danach wieder löschen.)

    PHP-Code:
    <?php phpinfo();
    Danke - das mit der phpinfo() war klar, aber ich hatte die Hoffnung, dass Hetzner dies wie jeder (?) andere Hoster im Adminpanel anzeigt...deshalb wollte ich diesen Schritt erst mal noch nicht angehen - ja, faul, ich weiss...

    Aber um es kurz zu machen: ich hab nun die genannte htacces verwendet (warum überschreibt das Installtool meine denn nicht einfach...?) und meine PHP 7 Einträge dazugeschrieben, jetzt läuft es.


    Danke für die wie immer super schnelle und kompetente Hilfe hier!

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von BCBCBC Beitrag anzeigen
    warum überschreibt das Installtool meine denn nicht einfach...?
    Natürlich überschreibt Contao (egal ob Install Tool oder Post Install Scripts) nicht die .htaccess. Da würden ja deine Änderungen verloren gehen.

  10. #10
    Contao-Nutzer
    Registriert seit
    30.08.2009.
    Beiträge
    66

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du hast dadurch vermutlich die default .htaccess von Contao überschrieben und daher funktioniert es nicht. Lösche die .htaccess und führe composer install oder vendor/bin/contao-console contao:install-web-dir aus.
    ...eigentlich habe ich es genau andersherum gemacht...zuerst meine htaccess mit den PHP Settings angelegt, und dann die contao-Manager.phar.php aufgerufen...
    Offensichtlich ist das Installtool dann so rücksichtsvoll und überschreibt das bestehende File nicht.

    Ich war eh der Meinung, dass ich keine Files in das /web Verzeichnis schreiben darf (ist dem nicht so?)...aber da ich die PHP Version nur so umstellen konnte, blieb mir keine andere Wahl und ich hab's einfach mal versucht...was dann ja auch geklappt hat, inkl. der Installation.

    Aber nun kenn ich ja die Lösung für so ein Problem - man lernt nie aus!

    Danke nochmals.

  11. #11
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Ergänzend dazu das entsprechende Ticket. Hier soll wohl noch optimiert werden: https://github.com/contao/manager-bundle/issues/70

  12. #12
    Contao-Nutzer
    Registriert seit
    13.03.2010.
    Beiträge
    227

    Standard Auch bei World4You mit app.php

    Eine kleine Ergänzung von mir. Habe mich jetzt über zwei Stunden mit der Installation von 4.4.26 bei World4You (Domainserver 2018) herumgequält, weil zuerst der RAM nicht passte und dann das Contao nicht zu finden war. Mit /app.php konnte ich es aufrufen. Dank des Forums konnte ich mir zweimal helfen (lassen). RAM-Problem siehe https://community.contao.org/de/foru...mit-Webhostern

    Die .htaccess unter /web war von World4You schon vorbelegt worden, weil ich vor allem anderen das SSL aktiviert hatte. Mehr stand dann nicht mehr drin. Als ich die .htaccess jetzt ergänzt habe, wie von BCBCBC beschrieben, lief das Contao endlich unter der Domain.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •