.htaccess Frage

sabekis

Newbie
Registriert
Feb. 2024
Beiträge
4
Hallo,

kann man folgendes mittels .htaccess (für eine Typo3-Version) realisieren? Es geht um 301 Redirects von URLs früherer Webseitenversionen auf die noch starke Links verweisen.

Ich will mit einer Regel alle URLs, die mit https://www.domain.de/fileadmin/ beginnen auf https://www.domain.de/abc/ umleiten.
Das würde also beim Beispiel https://www.domain.de/fileadmin/_processed_/csm__c__Claas_Sengler___Hund__7a89929fc5.jpg greifen.

Darüber hinaus habe ich noch URLs mit Parametern, funktioniert so eine Umleitung damit auch?
Alle URLs, die beginnen mit: http://www.domain.de/start/click.system? sollen immer auf domain.de umleiten.
Die Regel würde also für das Beispiel greifen: http://www.domain.de/start/click.system?lang=en&sid=2CInucST13Kk5DPUEUYJGWO4l0TbVIzJ

Vielen Dank für Eure Hilfe!
Ich dächte nämlich, dass müsste funktionieren, meine Agentur sagt aber, sie könnten Redirects immer nur für konkrete einzelne URLs machen.
 
Ich bin mir gerade nicht sicher, wie es mit 301er Redirects (Statuscode 301 steht für "Moved permanently") ausschaut. Grundsätzlich kann man auch ganze Ordner bzw. URLs umschreiben. Bspw. wenn Blog-Beiträge vorher /news/abc zu finden waren, kann man mit einer einfachen Regel daraus /blog/abc machen.
Und zwar als Logik für alle Einträge.
Beim 301er weiß ich das allerdings halt nicht, oder ob man den wirklich für jede URL einzeln zurückgeben muss. Wenn dem so ist, wird es natürlich schwieriger.
Und aus SEO-Sicht, ist 301 enorm wichtig, weil du sonst im Zweifel (erstmal) doppelte Inhalte hast - vor allem aber den SEO-Score der alten Seite quasi verlierst.
 
Eventuell so?
Code:
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^/fileadmin/(.*) https://www.domain.de/abc/$1 [L,R=301]
</IfModule>
 
Vielen Dank für eure Antworten. Ich habe auch ChatGPT dazu befragt mit folgendem Ergebnis. Für mich schaut das logisch aus, denn ich will die wirklich alle auf die gleiche Ziel URL senden und alles das, was nach fileadmin/* noch kommt, nicht in die Ziel-URL übernehmen.

RewriteEngine On
RewriteRule ^fileadmin/.*$ https://www.domain.de/ [R=301,L]

Das würde also bedeuten, dass es grundsätzlich erstmal per .htaccess funktionieren würde.
 
sabekis schrieb:
Ich dächte nämlich, dass müsste funktionieren, meine Agentur sagt aber, sie könnten Redirects immer nur für konkrete einzelne URLs machen.
Hast du denn mal nach einer Begründung gefragt?
 
Code:
RewriteEngine On
RewriteRule ^fileadmin/.*$ https://www.domain.de/ [R=301,L]

Das leitet alles nur auf die Domain um und ist sicher nicht das was du willst.
 
  • Gefällt mir
Reaktionen: tollertyp
1. Beides geht - sogar auf zig unterschiedliche Arten. Google einfach mal "htaccess rewrite subfolder to different domain".

2. Für die Beibehaltung des Query-Strings (also ?...) benötigst du evtl. den Parameter qsa (query string append), also [R=301,qsa,L]

3. Du solltest die Agentur fragen, wieso es ihrer Meinung nach nicht geht. Möglicherweise arbeiten sie gar nicht mit mod_rewrite (Name des Rewrite-Moduls, mit dem in .htaccess die hier genannten Umleitungen umgesetzt werden), oder mit einem anderen Webserver, dann ist es natürlich eine andere Situation.
 
  • Gefällt mir
Reaktionen: Der Lord und tollertyp
Eben, Punkt 3 würde ich nicht einfach ignorieren. Das ist eigentlich die zentrale Frage hier, die zuerst beantwortet werden sollte.
 
  • Gefällt mir
Reaktionen: Helge01
Vielen Dank für die ganzen Antworten. Mit dem Hintergrundwissen werde ich nun natürlich fragen. Sie arbeiten anscheinend mit nginx.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Der Lord und tollertyp
Helge01 schrieb:
Code:
RewriteEngine On
RewriteRule ^fileadmin/.*$ https://www.domain.de/ [R=301,L]

Das leitet alles nur auf die Domain um und ist sicher nicht das was du willst.
Doch, das will ich. ;-)
Ergänzung ()

Das mit dem anderen Server habe ich eben erst herausgefunden, aber lt. ChatGPT müsste es auch da funktionieren. Er gibt mir dazu aus:
server { # ... location /fileadmin/ { return 301 https://www.domain.de/; } # ...}
 
Für nginx gibt es ebenfalls ein Rewrite-Modul.

Auch wenn es vermutlich (so verstehe ich einige Posts) standardmäßig inkludiert ist, könnte es durchaus sein, dass auf deinem Server eine Build ohne dieses Modul installiert ist, oder aber der Hoster es nicht erlaubt.

Falls es aber zur Verfügung steht - in diesem Blog-Artikel werden die verschiedenen Möglichkeiten aufgezeigt: https://www.nginx.com/blog/creating-nginx-rewrite-rules/

Mein Vorschlag ist, dass du der Agentur den Blog-Artikel weiterleitest und fragst, wieso z. B. die dort genannte rewrite-Direktive auf deinem Server nicht zur Verfügung steht.
 
Zurück
Oben