Contao-Camp 2024
Ergebnis 1 bis 13 von 13

Thema: htaccess umschreiben

  1. #1
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard htaccess umschreiben

    Hi,

    ich wollte nachfolgende htaccess einstellungen in Contao auf die Startseite weiterleiten:

    HTML-Code:
    RewriteRule ^profile/(.*)$ ./detail.php?name=$1
    
    RewriteRule ^page/([0-9]+)$ ./index.php?page=$1&%{QUERY_STRING} [NC,L]
    RewriteRule ^continent/([^/]+)$ ./index.php?continent=$1
    RewriteRule ^continent/([^/]+)/country/([^/]+)$ ./index.php?continent=$1&country=$2
    RewriteRule ^continent/([^/]+)/country/([^/]+)/state/([^/]+)$ ./index.php?continent=$1&country=$2&state=$3
    RewriteRule ^continent/([^/]+)/country/([^/]+)/state/([^/]+)/city/([^/]+)$ ./index.php?continent=$1&country=$2&state=$3&city=$4
    RewriteRule ^continent/([^/]+)/page/([0-9]+)$ ./index.php?continent=$1&page=$2
    RewriteRule ^continent/([^/]+)/country/([^/]+)/page/([0-9]+)$ ./index.php?continent=$1&country=$2&page=$3
    RewriteRule ^continent/([^/]+)/country/([^/]+)/state/([^/]+)/page/([0-9]+)$ ./index.php?continent=$1&country=$2&state=$3&page=$4
    RewriteRule ^continent/([^/]+)/country/([^/]+)/state/([^/]+)/city/([^/]+)/page/([0-9]+)$ ./index.php?continent=$1&country=$2&state=$3&city=$4&page=$5

    wie mache ich das?
    Geändert von stefanfischer84 (06.07.2020 um 21:26 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    ich habs bereits mit folgender Einstellung versucht allerdings ohne erfolg:

    HTML-Code:
    RewriteRule ^profile/(.*)$ http://contao.local/?show=$1
    Hat sonst niemand eine idee? Alternativ würde ich auch mit einer extension wie contao-redirect-bundle arbeiten...
    Geändert von stefanfischer84 (09.07.2020 um 21:32 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    hab mittels dem Tutorial von BugBuster: https://github.com/BugBuster1701/contao-routing-app. Das Problem lösen können allerdings ist die Lösung etwas unschön, da ich mittels curl die Daten hole. Gibt es hierfür noch ne andere Lösung? Habe folgenden Quellcode geschrieben:

    PHP-Code:
       public function profileAction($name)
        {
            
    $name str_replace(".html"""$name);
            
    $curl_handle=curl_init();
            
    curl_setopt($curl_handleCURLOPT_URL,'http://contao.local/?show='.$name);
            
    curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT10);
            
    curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($curl_handleCURLOPT_USERAGENT'contao');
            
    $content curl_exec($curl_handle);
            
    curl_close($curl_handle);
            
    $objResponse = new Response($content);
            
    $objResponse->headers->set('Content-Type''text/html; charset=UTF-8');
            return 
    $objResponse;
       } 

  4. #4
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    gibt es vllt. ne möglichkeit von symfony auf contao zuzugreifen? Könnte dies gut gebrauchen.

    Vllt. hilft folgender Quellcode von der web/index.php... ich müsste dann irgendwie an die gewünschte URL drankommen.

    PHP-Code:
    <?php

    declare(strict_types=1);

    /*
     * This file is part of Contao.
     *
     * (c) Leo Feyer
     *
     * @license LGPL-3.0-or-later
     */

    use Contao\ManagerBundle\HttpKernel\ContaoKernel;
    use 
    Symfony\Component\HttpFoundation\Request;
    use 
    Symfony\Component\HttpKernel\TerminableInterface;

    // Suppress error messages (see #1422)
    @ini_set('display_errors''0');

    // Disable the phar stream wrapper for security reasons (see #105)
    if (\in_array('phar'stream_get_wrappers(), true)) {
        
    stream_wrapper_unregister('phar');
    }

    /** @var Composer\Autoload\ClassLoader */
    $loader = require __DIR__.'/../vendor/autoload.php';

    $request Request::createFromGlobals();
    //var_dump($request->request);
    //$request->send("http://contao.local?show=test54");
    $kernel ContaoKernel::fromRequest(\dirname(__DIR__), $request);

    $response $kernel->handle($request);
    $response->send();

    if (
    $kernel instanceof TerminableInterface) {
        
    $kernel->terminate($request$response);
    }
    Geändert von stefanfischer84 (06.10.2020 um 23:15 Uhr)

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

    Standard

    Was genau möchtest du machen?

  6. #6
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    Hallo Spooky,

    vllt. kannst du mir ja helfen^^

    Also ich habe eine Extension auf der Startseite, die GET Parameter auswertet und eine entsprechende Detailseite ausgibt bsp. ?show=test54. Jetzt will ich wegen SEO-URLs diese GET Parameter verschönern. das Seo sieht folgendermaßen aus.: domain.com/profile/test54 und verwaist auf eine Detailseite. Wie kann ich dies erreichen? Ich hoffe ich habe mich klar ausgedrückt.

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

    Standard

    Wenn du unter dieser URL dann eine bestimmte Contao Detailseite ausgeben möchtest, müsstest du denke ich den getPageIdFromUrl Hook nehmen, dort die URL analysieren, die entsprechenden Parameter im Request setzen und dann die ID der Page zurück geben.

  8. #8
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    hmmm... ich habe die seite recherchiert... dort wird gesagt dass GETPAGEIDFROMURL deprecated ist und in contao 5.0 nicht mehr funktioniert.

  9. #9
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.060
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nuja, weiss eigentlich jemand, wann Contao 5.0 rauskommt? Vor oder nach 2025?

  10. #10
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    habe nachfolgenden Thread gefunden... vllt. ist das schon die Lösung:
    https://community.contao.org/de/show...-in-Contao-4-4

    ich weiß nur noch nicht ob domain.tld/index/show/test54.html so schön ist aber es wäre mal ne erste Lösung... was meint ihr ist es seo technisch vertretbar? könnte ich evtl. den parameter-namen oder den alias weglassen?
    Geändert von stefanfischer84 (13.10.2020 um 19:44 Uhr)

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

    Standard

    Zitat Zitat von stefanfischer84 Beitrag anzeigen
    hmmm... ich habe die seite recherchiert... dort wird gesagt dass GETPAGEIDFROMURL deprecated ist und in contao 5.0 nicht mehr funktioniert.
    Ab Contao 4.10 ist das deprecated.

    Für Contao 5 gibt es noch keine Pläne.

  12. #12
    Contao-Nutzer
    Registriert seit
    21.01.2020.
    Beiträge
    44

    Standard

    ok werde es in erwägung ziehen... wobei ich auch die seo-parameter von Contao nehmen kann.

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Nuja, weiss eigentlich jemand, wann Contao 5.0 rauskommt? Vor oder nach 2025?
    sieht nicht danach aus, vor 2025

    https://contao.org/de/release-plan.html

    https://contao.org/de/news/rueckblic...ffen-2020.html => 4. Absatz

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
  •