Ergebnis 1 bis 11 von 11

Thema: Redirect - Bitte um Hilfe

  1. #1
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    294

    Standard Redirect - Bitte um Hilfe

    Eigentlich wollte ich nur eine einfache Weiterleitung von einer Adresse zu einer anderen in der .htaccess eintragen.
    Es geht um diese Regel, die ich für passend gehalten habe:
    Code:
    RewriteRule ^altes-verzeichnis/(.*)$ /neues-verzeichnis/$1 [R=301,L]
    Möchte alle Aufrufe die über
    Code:
    https://www.domain-name.de/beitrag/seiten-alias.html
    kommen auf
    Code:
    https://www.domain-name.de/beitrag/items/seiten-alias.html
    weiterleiten.

    Funktionert aber irgendwie nicht, wenn das neue Verzeichnis so gesehen 2 "Ebenen" hat. Was mache ich da falsch?
    Geändert von quintacom (24.05.2023 um 11:03 Uhr)

  2. #2
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    7.080
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Laut Htaccess-Tester ist es möglich, als Zielverzeichnis zwei Verzeichnisebenen zu setzen.
    Die neue Adresse ist im Browser direkt aufrufbar?
    Wie sieht die komplette .htaccess aus und wo liegt diese?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  3. #3
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    294

    Standard

    Die Adressen sind natürlich direkt über .../beitrag/items/... aufrufbar. Die Seite mit den Beiträgen hat den Alias "beitrag/items" eingetragen.
    Die .htaccess liegt ganz normal in /web und hat außer Rules für Weiterleitung auf www und https den Standardinhalt von Contao 4.13.
    Verstehe das auch nicht, warum das nicht greift.
    Geändert von quintacom (24.05.2023 um 15:56 Uhr)

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

    Standard

    Poste deine .htaccess + die Domain der Seite.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    294

    Standard

    https://www.at-rs.de/bremspunkt.html

    Code:
    <IfModule mod_rewrite.c>
        RewriteEngine On
    
    	RewriteCond %{HTTP_HOST} ^at-rs\.de [NC]
    	RewriteRule (.*) https://www.at-rs.de/$1 [R=301,L]
    	
    	RewriteCond %{HTTPS} off
    	RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    	
    	# RewriteRule ^beitrag/(.*)$ /beitrag/items/$1 [R=301,L]
    
        <IfModule mod_headers.c>
    	
    		Header set Cache-Control "no-cache, no-store, must-revalidate"
    		Header set Pragma "no-cache"
    		Header set Expires 0
            # 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
    		Header always set Cache-Control "s-max-age=0" env=CONTAO_ASSETS
    		# Header always set Cache-Control: s-maxage=0
    
            # 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>
    	
    	<FilesMatch "\.(css|flv|gif|htm|html|ico|jpe|jpeg|jpg|js|mp3|mp4|png|pdf|swf|txt)$">
    		<IfModule mod_expires.c>
    			ExpiresActive Off
    		</IfModule>
    		<IfModule mod_headers.c>
    			FileETag None
    			Header unset ETag
    			Header unset Pragma
    			Header unset Cache-Control
    			Header unset Last-Modified
    			Header set Pragma "no-cache"
    			Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    			Header set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
    		</IfModule>
    	</FilesMatch>
    	
    
    
        # 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 index.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 `/index.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 ^index\.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}/index.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 ^/$ /index.php/
            # RedirectTemp cannot be used instead
        </IfModule>
    </IfModule>
    Die betreffende RewriteRule ist jetzt natürlich auskommentiert, da das ja nicht funktioniert.

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

    Standard

    Ich habe bei uns alle Redirects andersrum

    Code:
    RewriteRule ^beitrag/(.*)$ /beitrag/items/$1 [R=301,L]    
    
    
    und dann erst 
    
    RewriteCond %{HTTP_HOST} ^at-rs\.de [NC]
        RewriteRule (.*) https://www.at-rs.de/$1 [R=301,L]
        
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    Aber nachdem du "beitrag/*wildcard*" abfragst, sollte diese Regel auch bei /beitrag/items/ greifen und somit eine Endlosschleife verursachen (ungetestet).
    Geändert von Kahmoon (24.05.2023 um 16:02 Uhr)

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

    Standard

    Zitat Zitat von quintacom Beitrag anzeigen
    Die betreffende RewriteRule ist jetzt natürlich auskommentiert, da das ja nicht funktioniert.
    Du musst sie aktivieren, damit wir das testen können.
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    294

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Ich habe bei uns alle Redirects andersrum

    Aber nachdem du "beitrag/*wildcard*" abfragst, sollte diese Regel auch bei /beitrag/items/ greifen und somit eine Endlosschleife verursachen (ungetestet).
    Ja, verursacht eine Endlosschleife. dann muss das "(.*)" also weg? Funktioniert dann aber auch nicht.

    Ebenso wenig funktioniert das schlichte
    Code:
    Redirect 301 /beitrag /beitrag/items
    Was ja auch von einigen vorgeschlagen wird.

  9. #9
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    294

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du musst sie aktivieren, damit wir das testen können.
    Hmm, für längere Zeit auf der Live-Seite ist nicht gut.

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

    Standard

    Versuch mal

    Code:
    RewriteRule  ^/beitrag/(.*).html$ /beitrag/items/$1.html [R=301,L]

  11. #11
    Contao-Fan Avatar von quintacom
    Registriert seit
    08.07.2009.
    Beiträge
    294

    Standard

    Leitet auch nicht wie gewünscht weiter. Die URL bleibt wie sie ist und es kommt daher eine 404.
    Habe das gerade noch aktiv.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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