[Regexp] URL Redirecten, probleem met querystring

Pagina: 1
Acties:

  • m.joosse
  • Registratie: Juli 2009
  • Laatst online: 01-02 23:33
Goedemiddag,

Ik ben aan het stoeien met reguliere expressies om een URL door te sturen. Normaliter is dit niet zo'n probleem, maar door een onhandige server configuratie gaat het niet helemaal naar wens. Al met al toch al een heel eind gekomen.

Het e-commerce systeem waar gebruik van wordt gemaakt is ePages (overigens absoluut geen aanrader voor wat betreft de techniek).

Standaard ziet een URL in ePages er als volgt uit:

www.domein.tld/epages/Cus...r/Categories/Productgroep

Dit moet worden:

www.domein.tld/Categorie/Productgroep

Die laatste URL werkt al prima, echter wil ik de eerste URL hier ook naar doorsturen om duplicate content te voorkomen.

Hiervoor heb ik het volgende gemaakt:
code:
1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/epages/Customer.sf/nl_NL/$ [NC]
RewriteCond %{QUERY_STRING} ^ObjectPath=/Shops/Customer/([A-Za-z]+)/([A-Za-z]+)$
RewriteRule ^(.*)$ http://www.domein.tld/categorie/%2 [R=301,L]
</IfModule>


Dit resulteert in het volgende:

www.domein.tld/Categorie/...r/Categories/Productgroep

Het laatste stuk ?ObjectPath=/Shops/Customer/Categories/Productgroep moet er dus nog af.

Overigens, als ik van de rewriterule http://www.nu.nl maak krijg je:
www.nu.nl/?ObjectPath=/Sh...r/Categories/Productgroep

Iemand hier die een oplossing ziet? Zelf inmiddels al uitgebreid onderzoek gedaan en ingelezen. Alle suggesties en tips zijn daarom welkom.

[ Voor 1% gewijzigd door m.joosse op 14-07-2009 16:46 . Reden: opmaak ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
RewriteRules horein in Serversoftware en Windows Servers ( Zie: Waar hoort mijn topic? )

PRG -> WSS

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Wat gebeurt er als je er het volgende van maakt:

code:
1
RewriteRule /([a-zA-Z]+)$ http://www.domein.tld/categorie/$1 [R=301,L]


Op deze manier wordt de match achter domein.tld/categorie/ gezet.

Huur mij in als freelance SEO consultant!


  • m.joosse
  • Registratie: Juli 2009
  • Laatst online: 01-02 23:33
CrashOne schreef op woensdag 15 juli 2009 @ 09:17:
Wat gebeurt er als je er het volgende van maakt:

code:
1
RewriteRule /([a-zA-Z]+)$ http://www.domein.tld/categorie/$1 [R=301,L]


Op deze manier wordt de match achter domein.tld/categorie/ gezet.
Helemaal niets meer..

Overigens is het probleem niet dat hij die match niet maakt, die wordt prima gemaakt. Probleem is dat het stuk
?ObjectPath=/Shops/Customer/Categories/Productgroep er altijd achter wordt gezet. |:(

Ik begin langzaam bang te worden dat het iets akeligs in ePages is, vind het alleen wel vreemd dat dit dan ook achter nu.nl gezet wordt...

  • sam.vimes
  • Registratie: Januari 2007
  • Laatst online: 07-01 22:10
Uit de documentatie:
Syntax: RewriteRule Pattern Substitution [flags]
[...]
What is matched?

The Pattern will initially be matched against the part of the URL after the hostname and port, and before the query string.
[...]
Modifying the Query String

By default, the query string is passed through unchanged. You can, however, create URLs in the substitution string containing a query string part. Simply use a question mark inside the substitution string to indicate that the following text should be re-injected into the query string. When you want to erase an existing query string, end the substitution string with just a question mark. To combine new and old query strings, use the [QSA] flag.

  • m.joosse
  • Registratie: Juli 2009
  • Laatst online: 01-02 23:33
Bedankt! De oplossing is inderdaad makkelijker dan ik dacht :)
Pagina: 1