Contao-Camp 2024
Ergebnis 1 bis 19 von 19

Thema: Shorturls Redirect nach extern via htaccess

  1. #1
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard Shorturls Redirect nach extern via htaccess

    Hallo zusammen,

    bisher (Contao 3) konnte ich in der htaccess Rewrite ShortURLs anlegen die dann auch funktioniert haben. In Contao 4 mal das irgendwie nicht mehr....wobei das ja eigentlich kein Contao spezifisches Ding ist.

    Ich würde gerne meine-domain.de/bewerten nach extern zu einem google Review weiterleiten. Hierzu habe ich folgende Rewrite Rules getestet

    Code:
    RedirectMatch 301 ^(.*)domain.de/bewerten$ https://meineexternezieldomain.de
    Code:
    Redirect 301 /bewerten https://meinezieldomain.de

    Keine der beiden Regeln funktioniert. Die Fehlerseite ist eine Weiterleitung zur Startseite aber auch wenn ich diese Seite temporär deaktiviere geht es nicht.


    Laut einem Redirect Tracker passiert Folgendes wenn man /bewerten eingibt:

    1. 301: Permanent redirect to https://www.domain.de/de/bewerten
    2. 301: Permanent redirect to https://www.domain.de/de/alias-start...domain-de.html
    3. 302: Temporary redirect to https://www.domain.de/de/



    Punkt 1 ist schon mal falsch....er sollte da nicht nach /de/ weiterleiten...der Rest sind Folgefehler. Aber wie kann ich noch früher als per htaccess weiterleiten?

    Contao 4.7.4
    Hoster 1&1


    VG Frank

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

    Standard

    Bei RedirectMatch kannst du nicht auf die Domain abfragen. Dafür brauchst du die RewriteEngine.

  3. #3
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Die ist eine Zeile drüber

    Code:
    <IfModule mod_rewrite.c>
        RewriteEngine On
    Die Domain wäre eigentlich wurscht...solange was mit /bewerten daher kommt...bitte extern weiterleiten.

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

    Standard

    RedirectMatch ist nicht Teil der RewriteEngine. Mit RedirectMatch kannst du wie gesagt nicht auf die Domain überprüfen. Das geht nur mit der RewriteEngine (RewriteCond + RewriteRule).

  5. #5
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Aber der hier greift ja auch ned. Oder ist das analog zu RedirectMatch

    Code:
    Redirect 301 /de/bewerten http://www.domain.de/neue-url.html
    Wie muss ich es denn schreiben damit es geht? Wie gesagt...in C3 ging das bisher immer.


    Edit mit Condition (mag aber auch ned)
    Code:
    RewriteCond %{HTTP_HOST} ^domain\.de/bewerten$
    RewriteRule (.*) https://www.meineexternedomain.de/$1 [R=301,L]

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

    Standard

    Mit Contao haben diese .htaccess Anweisungen nichts zu tun

    Poste deine komplette .htaccess und einen Link zur Seite.

  7. #7
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Naja offensichtlich schon wenn es vorher mit Contao 3 ging und er jetzt in Contao 4 zuerst auf /de/ weiterleitet bevor die eigentliche htaccess verarbeitet wird.


    htaccess

    Code:
    <IfModule mod_rewrite.c>
        RewriteEngine On
        
        #Sitemaps umbiegen
        Redirect 301 /sitemap.xml /share/sitemap.xml
        
        #Weiterleitunge alte URLs
        RedirectMatch 301 ^(.*)waffen-oberhammer.de/kontakt.html$ $1/de/kontakt.html
        RedirectMatch 301 ^(.*)waffen-oberhammer.de/impressum.html$ $1/de/impressum.html  
        RedirectMatch 301 ^(.*)waffen-oberhammer.de/datenschutz.html$ $1/de/datenschutz.html 
        RedirectMatch 301 ^(.*)waffen-oberhammer.de/anfahrt.html$ $1/de/anfahrt.html 
        RedirectMatch 301 ^(.*)waffen-oberhammer.de/ladengeschaeft.html$ $1/de/ladengeschaeft.html 
        
        #Google Ratings Shorturl
        RewriteRule ^/bewerten$ http://www.anderedomain.tld/seite2.html [R=301,L]
        
        RewriteCond %{HTTP_HOST} ^waffen-oberhammer\.de/bewerten$
        RewriteRule (.*) https://www.meineexternedomain.de/$1 [R=301,L]
        
    
        #Redirects für waffen-oberhammer.de
        RewriteCond %{HTTP_HOST} ^waffen-oberhammer\.de$
        RewriteRule (.*) https://www.waffen-oberhammer.de/$1 [R=301,L]    
        
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    
        <IfModule mod_headers.c>
            # Assets in /assets and /bundles either contain a hash in their filename
            # or are called with a ?version suffix, therefore cache them for 1 year.
            RewriteRule ^(assets|bundles)/ - [ENV=CONTAO_ASSETS:true]
            Header set Cache-Control "max-age=31536000" env=CONTAO_ASSETS
    
    
            # Allow CORS on the Contao TinyMCE skin.
            RewriteRule ^assets/tinymce4/js/skins/contao/fonts/ - [ENV=CONTAO_TINYMCE_SKIN:true]
            Header set Access-Control-Allow-Origin "*" env=CONTAO_TINYMCE_SKIN
        </IfModule>
    
    
        # 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>

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

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Naja offensichtlich schon wenn es vorher mit Contao 3 ging und er jetzt in Contao 4 zuerst auf /de/ weiterleitet bevor die eigentliche htaccess verarbeitet wird.
    Diese .htaccess Anweisungen haben nichts mit Contao zu tun. Das ist reine Server Konfiguration.

  9. #9
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Diese .htaccess Anweisungen haben nichts mit Contao zu tun. Das ist reine Server Konfiguration.
    Ja, das ist mir bewusst (habe ich oben auch geschrieben "wobei das ja eigentlich kein Contao spezifisches Ding ist.") aber warum geht es von C3 auf C4 nicht mehr mit der gleichen Rewrite Regel? Einzige Veränderung ist prepend local von C4

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

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Code:
    RewriteRule ^/bewerten$ http://www.anderedomain.tld/seite2.html [R=301,L]
    Bei dieser RewriteRule ist ein / zu viel.


    Zitat Zitat von Kahmoon Beitrag anzeigen
    aber warum geht es von C3 auf C4 nicht mehr mit der gleichen Rewrite Regel?
    Es hat nichts mit Contao zu tun. .htaccess Anweisungen sind wie sie sind.

  11. #11
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    So mag es leider auch nicht

    Code:
    RewriteRule ^bewerten$ https://search.google.com/local/writereview?placeid=ChIJyR6QE_13nkcRoZlQOTB3VtU [R=301,L]

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

    Standard

    http://waffen-oberhammer.de/bewerten funktioniert einwandfrei. Vermutlich hattest du deinen Browser Cache nicht gelöscht.

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

    Standard

    Die RewriteEngine würde ich für solche Redirects übrigens nicht bemühen. Einfacher wäre es mit
    Code:
    RedirectMatch 301 ^/bewerten$ https://search.google.com/local/writereview?placeid=ChIJyR6QE_13nkcRoZlQOTB3VtU
    Spart dir vielleicht ein paar Nanosekunden.

  14. #14
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Spring in allen meinen Browsern auf die Startseite. Strange....Cache gelöscht...Systemwartung komplett ausgeführt :-P

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

    Standard

    Hier ein eindeutiger Beweis:
    Code:
    $ curl -i http://waffen-oberhammer.de/bewerten
    HTTP/1.1 301 Moved Permanently
    Content-Type: text/html; charset=iso-8859-1
    Content-Length: 287
    Connection: keep-alive
    Keep-Alive: timeout=15
    Date: Tue, 21 May 2019 08:27:34 GMT
    Server: Apache
    Location: https://search.google.com/local/writereview?placeid=ChIJyR6QE_13nkcRoZlQOTB3VtU

  16. #16
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    hehe! Fakten Fakten Fakten!

    Ja, am Handy ging es jetzt auch. Weiss ned warum meine Browser hier so hartnäckig verweigern.

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

    Standard

    Bist du sicher, dass du den Browser Cache gelöscht hast? Bist du hinter einem Proxy?

  18. #18
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.280

    Standard

    Hab die Developer Console offen und sowohl Laden ohne Cache als auch Hard Reload gemacht. Aber wenn es nur mein Problem ist...ist es ok

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

    Standard

    Lösche den Browser Cache und versuche es nochmal.

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
  •