Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Link per .htaccess ändern

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 06.03.2012, 19:26

Das sind die möglichen Parameter:

?do=matches&productid=42catid=&title=df&min_price=0&max_price=0&min_rating=&max_rating=

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 06.03.2012, 20:49

PSVFabian hat geschrieben:?do=matches&productid=42catid=&title=df&min_price=0&max_price=0&min_rating=&max_rating=
Auweia, na dann kann das nicht funktionieren. Das sind ja nicht 2 sondern 8 Parameter, die berücksichtig werden müssten. Die müsstest Du dann auch alle mit einbauen. Vorrausetzung wäre, dass es immer 8 wären und nicht einmal mehr oder weniger, ansonsten müssten zusätzliche Regeln erstellt werden.

Da müsste ich mir erst einmal anschauen, wie andere Shops das so handhaben, wenn die ähnlich viele Parameter verwenden. Ich denke, die schreiben nur einen Teilstring um und reichen den Rest so durch, wie er ist. Habe mir das nur mal schnell bei Amazon angeschaut, die schreiben nur die ersten Parameter um, wobei ein Unterstrich verwendet wird und der Rest wird angehängt, wie er ist. Bei den Zeilen ginge das noch:

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^do=([a-zA-Z_-]+)&productid=([0-9]+)&(.*)$
RewriteRule ^testseite\.php$ /testseite-%1-%2-%3? [L,R=301]
Doch wie sehe es hier aus?

Code: Alles auswählen

RewriteRule ^testseite-([a-zA-Z_-]+)-([0-9]+)-(.*)$ /testseite.php?var=mitq&var1=$1&var2=$2&$3 [L]
Alles ungetestet, versteht sich, könnte aber so funktionieren und falls nicht, so sind es vermutlich nur kleine Fehler.

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 06.03.2012, 21:42

PSVFabian hat geschrieben:?do=matches&productid=42catid=&title=df&min_price=0&max_price=0&min_rating=&max_rating=
Da fehlt ein & zwischen 42 und catid, weiß jetzt nicht, ob das so sein soll. Habe deshalb mal a-z0-9 statt nur 0-9 eingesetzt, damit das mit durchflutscht. Das a-z kannst Du wieder herausnehmen, falls da im Normalfall ein & zwischen ist.

Code: Alles auswählen

RewriteEngine on 
DirectorySlash Off

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^testseite.php$ /testseite? [L,R=301]

RewriteCond %{QUERY_STRING} ^do=([a-zA-Z_-]+)&productid=([a-z0-9]+)(.*)$
RewriteRule ^testseite\.php$ /testseite-%1-%2%3? [L,R=301]

RewriteRule ^testseite$ /testseite.php?var=nurso[L]
RewriteRule ^testseite-([a-zA-Z_-]+)-([a-z0-9]+)(.*)$ /testseite.php?var=mitq&do=$1&productid=$2$3 [L]
Ist jetzt getestet und aus

"https://localhost/testseite.php?do=matc ... ax_rating="

wird

"https://localhost/testseite-matches-42c ... ax_rating="

Wenn alle 8 Parameter wie die ersten beiden verbunden werden sollen, dann halt für alle 8 eine -([Zeichenklasse]) definieren oder noch 6 mal -(.*) und mit %1 bis %8 und $1 bis $8 zuordnen.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 19.05.2012, 13:30

Hallo, ich habe nochmal das selbe Problem, allerdings diesmal wieder mit anderen Seiten.

Aus:

/articles.php?&sort=replycount&order=desc

soll werden:

/news?&sort=replycount&order=desc

Wäre super, wenn das wieder jemand hinkriegt. Ich habs versucht und bin zu dumm dazu :lol:

PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 20.05.2012, 17:06

Kann mir da nicht nochmal jemand helfen?

PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 25.05.2012, 18:30

Push :(

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 27.05.2012, 19:11

Habe Deine PM erhalten, doch ich sitze an einigen Regeln auch oft mehrere Stunden und an etwas komplexeren Regeln habe ich auch schon mal einen ganzen Tag gesessen und dafür fehlt mir momentan einfach die Zeit.

Eine einfache Regel, die nur in einer Richtung wirkt und nicht in beide Richtungen, die würde so aussehen und sollte auch funktionieren:

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off
RewriteRule ^news$ /articles.php$ [L]
Doch mit einer Regel, die in beide Richtungen wirkt, habe ich gerade meine Probleme, Irgendwie hänge ich da fest. Der Anfang wäre ja noch relativ einfach und sollte auch funktionieren, nur beim zweiten Teil bin ich mir nicht sicher und habe auch nichts getestet:

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteCond %{QUERY_STRING} !^(.+)$
RewriteRule ^articles\.php$ /news? [L,R=301]
RewriteRule ^news$ /articles.php?irgend=etwas [QSA,L]


RewriteCond %{QUERY_STRING} !^var=nurso(.*)$
RewriteCond %{QUERY_STRING} !^irgend=etwas(.*)$
RewriteCond %{QUERY_STRING} ^sort(.*)&order(.*)$
RewriteRule ^articles\.php$ /news$ [L,R=301]
RewriteRule ^news$ /articles.php?var=nurso&$ [L]
Edit: Wenn ich das so sehe, dann kann das so noch nicht funktionieren, eher so:

Code: Alles auswählen

# Die ersten beiden Regeln sollten nur greifen, falls kein QueryString vorhanden ist.

RewriteEngine on
DirectorySlash Off

RewriteCond %{QUERY_STRING} !^(.+)$
RewriteRule ^articles\.php$ /news? [L,R=301]
RewriteCond %{QUERY_STRING} !^(.+)$
RewriteRule ^news$ /articles.php?irgend=etwas [QSA,L]

# Und diese beiden Regeln sollten nur greifen, wenn ein QueryString vorhanden ist, in dem 
# die Parameter sort und order enthalten sind.

RewriteCond %{QUERY_STRING} !^var=nurso(.*)$
RewriteCond %{QUERY_STRING} !^irgend=etwas(.*)$
RewriteCond %{QUERY_STRING} ^sort(.*)order(.*)$
RewriteRule ^articles\.php$ /news$ [L,R=301]
RewriteCond %{QUERY_STRING} ^sort(.*)order(.*)$
RewriteRule ^news$ /articles.php?var=nurso&$ [L]

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 27.05.2012, 21:13

Jetzt habe ich es doch noch einmal durchgetestet, weil ich ja nichts Besseres zu tun habe. Nee, eigentlich weil es mir keine Ruhe gelassen hat. Ein paar Kleinigkeiten waren noch ungereimt, doch unter Localhost funktioniert es nun.

aus: "https://localhost/articles.php"
wird: "https://localhost/news"

und

aus: "https://localhost/articles.php?sort=rep ... order=desc"
wird: "https://localhost/news?sort=replycount&order=desc"

Das mit dem & zwischen dem Fragezeichen und dem ersten Parameter habe ich weggelassen, weil ich das nur für einen Schreibfehler in Deinen Beispielen halte.

/articles.php?&sort=replycount&order=desc
/news?&sort=replycount&order=desc

Wenn das sein muss, so müsste das auch in den Regeln überall noch vor sort eingefügt werden. Jedenfalls funktioniert das erst einmal so:

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteCond %{QUERY_STRING} !^(.+)$
RewriteRule ^articles\.php$ /news? [L,R=301]
RewriteCond %{QUERY_STRING} !^(.+)$
RewriteRule ^news$ /articles.php?irgend=etwas [QSA,L]

RewriteCond %{QUERY_STRING} ^sort(.*)order(.*)$   
RewriteRule ^articles\.php$ /news?sort%1order%2 [L,R=301]
RewriteCond %{QUERY_STRING} ^sort(.*)order(.*)$
RewriteRule ^news$ /articles.php?var=nurso&$ [L]

PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 27.05.2012, 23:49

Wow, ich weiß gar nicht was ich sagen soll - vielen dank, du hast mir wirklich sehr geholfen. Falls ich mich mal revangieren kann sag Bescheid (HTML, CSS, vBulletin).

Funktioniert das andere Script auch mit ?do=write_review? Leider funktionierte das Addon nämlich mit dem Code nicht mehr richtig :(

Und zwar muss ein Formular funktionieren <form>, dass als action die .php datei angibt. Dadurch funktioniert das Ganze nicht und man wird einfach weitergeleitet.

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 29.05.2012, 18:03

PSVFabian hat geschrieben:Funktioniert das andere Script auch mit ?do=write_review?
Wenn die Datei vor dem ? keinen anderen Namen hat, dann sollte es so reichen.

aus: "https://localhost/testseite.php"
wird: "https://localhost/testseite"

aus: "https://localhost/testseite.php?do=write_review"
wird: "https://localhost/testseite-write_review"

aus: "https://localhost/testseite.php?do=writ ... e=kommt_an"
wird: "https://localhost/testseite-write_revie ... e=kommt_an"

aus: "https://localhost/testseite.php?do=matc ... ax_rating="
wird: "https://localhost/testseite-matches-42c ... ax_rating="

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteCond %&#123;QUERY_STRING&#125; ^$
RewriteRule ^testseite\.php$ /testseite? &#91;L,R=301&#93;

RewriteCond %&#123;QUERY_STRING&#125; ^do=&#40;&#91;a-zA-Z_-&#93;+&#41;&productid=&#40;&#91;a-z0-9&#93;+&#41;&#40;.*&#41;$
RewriteRule ^testseite\.php$ /testseite-%1-%2%3? &#91;L,R=301&#93;

RewriteRule ^testseite$ /testseite.php?var=nurso&#91;L&#93;
RewriteRule ^testseite-&#40;&#91;a-zA-Z_-&#93;+&#41;-&#40;&#91;a-z0-9&#93;+&#41;&#40;.*&#41;$ /testseite.php?var=mitq&do=$1&productid=$2$3 &#91;L&#93;

# Ab hier neu!

RewriteCond %&#123;QUERY_STRING&#125; ^do=write_review&#40;.*&#41;$
RewriteRule ^testseite\.php$ /testseite-write_review%1? &#91;L,R=301&#93;
RewriteRule ^testseite-write_review&#40;.*&#41;$ /testseite.php?mit=wr&do=write_review$1 &#91;L&#93;
Falls die aber einen anderen Namen hat, dann sollte es so funktionieren.

aus: "https://localhost/andereseite.php"
wird: "https://localhost/andereseite"

aus: "https://localhost/andereseite.php?do=write_review"
wird: "https://localhost/andereseite-write_review"

aus: "https://localhost/andereseite.php?do=wr ... e=kommt_an"
aus: "https://localhost/andereseite-write_rev ... e=kommt_an"

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteCond %&#123;QUERY_STRING&#125; ^$
RewriteRule ^testseite\.php$ /testseite? &#91;L,R=301&#93;

RewriteCond %&#123;QUERY_STRING&#125; ^do=&#40;&#91;a-zA-Z_-&#93;+&#41;&productid=&#40;&#91;a-z0-9&#93;+&#41;&#40;.*&#41;$
RewriteRule ^testseite\.php$ /testseite-%1-%2%3? &#91;L,R=301&#93;

RewriteRule ^testseite$ /testseite.php?var=nurso&#91;L&#93;
RewriteRule ^testseite-&#40;&#91;a-zA-Z_-&#93;+&#41;-&#40;&#91;a-z0-9&#93;+&#41;&#40;.*&#41;$ /testseite.php?var=mitq&do=$1&productid=$2$3 &#91;L&#93;

# Ab hier neu!

RewriteCond %&#123;QUERY_STRING&#125; ^$
RewriteRule ^andereseite\.php$ /andereseite? &#91;L,R=301&#93;
RewriteRule ^andereseite$ /andereseite.php?eine=andere&#91;L&#93;

RewriteCond %&#123;QUERY_STRING&#125; ^do=write_review&#40;.*&#41;$
RewriteRule ^andereseite\.php$ /andereseite-write_review%1? &#91;L,R=301&#93;
RewriteRule ^andereseite-write_review&#40;.*&#41;$ /andereseite.php?mit=wr&do=write_review$1 &#91;L&#93;

PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 30.05.2012, 11:43

So richtig funktionieren tut das mit den News noch nicht.

Aus: /articles.php?&sort=views&order=desc

Wird: /articles.php?&sort=views&order=desc

Lediglich aus /articles.php wird /news :(

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 30.05.2012, 12:19

PSVFabian hat geschrieben:So richtig funktionieren tut das mit den News noch nicht.

Aus: /articles.php?&sort=views&order=desc

Wird: /articles.php?&sort=views&order=desc
(
Na befindet sich da wirklich hinter dem Fragezeichen gleich ein &?

/articles.php?&sort=views&order=desc

Dann müsste das noch mit berücksichtigt werden.

Edit: Nur in der ersten Zeile vom zweiten Teil in diesem Fall (&)? einfügen:

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteCond %&#123;QUERY_STRING&#125; !^&#40;.+&#41;$
RewriteRule ^articles\.php$ /news? &#91;L,R=301&#93;
RewriteCond %&#123;QUERY_STRING&#125; !^&#40;.+&#41;$
RewriteRule ^news$ /articles.php?irgend=etwas &#91;QSA,L&#93;

RewriteCond %&#123;QUERY_STRING&#125; ^&#40;&&#41;?sort&#40;.*&#41;order&#40;.*&#41;$   
RewriteRule ^articles\.php$ /news?sort%1order%2 &#91;L,R=301&#93;
RewriteCond %&#123;QUERY_STRING&#125; ^sort&#40;.*&#41;order&#40;.*&#41;$
RewriteRule ^news$ /articles.php?var=nurso&$ &#91;L&#93;
Bei mir funktioniert das nun mit und ohne &.

aus:

"https://localhost/articles.php?sort=rep ... order=desc"
"https://localhost/articles.php?&sort=re ... order=desc"

wird:

"https://localhost/news?sort=replycount&order=desc"

PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 30.05.2012, 15:22

Die URL ändert sich, aber der Content nicht.

Aus: articles.php?c=27
Wird: articles.php?c=27

:(

Aus: /articles.php?&sort=views&order=desc
Wird: /news?sort&order=replycount (aber Content ändert sich dadurch fälschlicher Weise nicht)

Ja, da muss ein & hin!

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 30.05.2012, 16:29

Jetzt bin ich raus aus dem Rennen, ich habe meine Zeit auch nicht auf den Mist gefunden. Weiter oben war noch nicht die Rede davon, dass da noch weitere Parameter mit Werten übergeben werden sollen.

Das geht:

/articles.php?&sort=views&order=desc
/news?sort&order=replycount

Und das geht nicht?

articles.php?c=27

Kann ja auch mit den obigen Regeln nicht gehen, weil davon bisher nie die Rede war. Vielleicht ja so:

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteCond %&#123;QUERY_STRING&#125; !^&#40;.+&#41;$
RewriteRule ^articles\.php$ /news? &#91;L,R=301&#93;
RewriteCond %&#123;QUERY_STRING&#125; !^&#40;.+&#41;$
RewriteRule ^news$ /articles.php?irgend=etwas &#91;QSA,L&#93;

RewriteCond %&#123;QUERY_STRING&#125; ^&#40;.+&#41;$   
RewriteCond %&#123;QUERY_STRING&#125; !^irgend=etwas&#40;.*&#41;$ 
RewriteRule ^articles\.php$ /news?%1 &#91;L,R=301&#93;
RewriteCond %&#123;QUERY_STRING&#125; ^&#40;.+&#41;$
RewriteCond %&#123;QUERY_STRING&#125; !^irgend=etwas&#40;.*&#41;$ 
RewriteRule ^news$ /articles.php?irgend=etwas&%1 &#91;L&#93;

PSVFabian
PostRank 2
PostRank 2
Beiträge: 37
Registriert: 06.02.2012, 08:04

Beitrag von PSVFabian » 30.05.2012, 21:02

Sorry, der c-Parameter ist mir eben erst aufgefallen. Jetzt funktioniert das mit den News perfekt! <3

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag