Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTACCESS] redirects i.c.m. rewriterules

Pagina: 1
Acties:

  • wheel
  • Registratie: December 2001
  • Laatst online: 14:47
Mensen,

Helaas is het wegens herinrichting website noodzakelijk geweest om de url's van pagina's aan te passen.

Oude url: www.domeinnaam.nl/site/oude-pagina
Nieuwe url: www.domeinnaam.nl/nieuwe-pagina

Het (loze) deel 'site' is weggelaten en de namen zijn niet één op één gewijzigd. M.a.w. de nieuwe naam kan anders zijn dan waar ie voorheen te vinden was.

Nu wil ik met permanente redirects de boel doorsluizen zodat bookmarks geldig blijven en Google de oude resultaten verwijderd en nieuwe opneemt (zonder duplicate content te hebben).

Een stukje uit htaccess:
code:
1
2
3
4
5
redirect /site/oude-naam www.domeinnaam.nl/nieuwe-naam

RewriteRule ^([a-zA-Z-_]+)(/?)$ index.php?sectie=$1
RewriteRule ^([a-zA-Z-_]+)/([a-zA-Z-_]+)(/?)$ index.php?sectie=$1⊂=$2
RewriteRule ^team/([a-zA-Z-_]+)/([0-9]+)(/?)$ content/teamlid.php?id=$2


Echter, de url wordt nu www.domeinnaam.nl/nieuwe-naam?sectie=nieuwe-naam. Het gaat mis zodra ik de 2e rewrite rule toepas.

Die laatste variabele wil ik er echter pertinent niet in hebben. Uit esthetisch oogpunt. Lijkt door 2e rewrite rule in htaccess veroorzaakt te worden.

Wie kan me helpen?

Dank.

[ Voor 3% gewijzigd door wheel op 10-04-2008 15:12 ]


  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 18-11 12:30
Ik weet niet wat je ⊂ voor dient, maar dat ziet er maar vreemd uit (in UTF-8 toch).

In ieder geval, zet eens je rewritelog aan en zie waar je fout zit. Je kunt een rewritecond toepassen als je niet wilt dat alle rewriterules tegelijk worden toegepast.

Je zult toch wel een beter voorbeeld moeten geven wat je precies wilt want ik begrijp het probleem of resultaat dat je wilt niet zo heel goed adhv je regexp.

Pandora FMS - Open Source Monitoring - pandorafms.org


  • wheel
  • Registratie: December 2001
  • Laatst online: 14:47
Guru Evi schreef op donderdag 10 april 2008 @ 15:26:
Ik weet niet wat je ⊂ voor dient, maar dat ziet er maar vreemd uit (in UTF-8 toch).

In ieder geval, zet eens je rewritelog aan en zie waar je fout zit. Je kunt een rewritecond toepassen als je niet wilt dat alle rewriterules tegelijk worden toegepast.

Je zult toch wel een beter voorbeeld moeten geven wat je precies wilt want ik begrijp het probleem of resultaat dat je wilt niet zo heel goed adhv je regexp.
Je eerste opmerking begrijp ik niet?

Een verduidelijking:

Voorheen waren er twee gaina's, bijvoorbeeld 'sport' en 'training'. Deze waren bereikbaar via www.domein.nl/site/sport en www.domein.nl/site/training.

Tegenwoordig is deze pagina samengevoegd tot pagina 'sport en training'. Het loze tussenvoegsel 'site' is eruit en de 2 pagina's hebben 1 nieuwe naam (en locatie: www.domein.nl/sport-traning).

Regels uit htaccess:
code:
1
2
3
4
5
6
7
8
# redirecten
redirect /site/sport http://www.domein.nl/sport-training
redirect /site/training http://www.domein.nl/sport-training

# naamgeving pagina's
RewriteRule ^([a-zA-Z-_]+)(/?)$ index.php?sectie=$1
RewriteRule ^([a-zA-Z-_]+)/([a-zA-Z-_]+)(/?)$ index.php?sectie=$1&sub=$2
RewriteRule ^team/([a-zA-Z-_]+)/([0-9]+)(/?)$ content/teamlid.php?id=$2


Wanneer ik nu (een in Google opgenomen) oude link volg, zoals in dit voorbeeld www.domein.nl/training, wordt doorverwezen naar www.domein.nl/sport-training?sectie=site&sub=training.

Uiteraard wil ik dat ie naar www.domein.nl/sport-training linkt, maar "?sectie=site&sub=training" wil ik er pertinent niet achter. Lijkt door r. 7 veroorzaakt te worden.

Hoe kan ik dit met een conditie uitsluiten?

Verwijderd

doe ipv (/?)$ eens /?$ ??

wellicht werkt dat?
Verder heb ik altijd [L] achter alle regels staan. Om aan te geven dat hij moet stoppen als ie een regel gevonden heeft die hij dient te gebruiken.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:52

TeeDee

CQB 241

r.7?

Werken de redirects etc. nu wel of niet? Zo ja, lijkt het me logisch dat het e.e.a. niet a la minuut aangepast is in de search results.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • wheel
  • Registratie: December 2001
  • Laatst online: 14:47
Verwijderd schreef op donderdag 10 april 2008 @ 16:13:
doe ipv (/?)$ eens /?$ ??

wellicht werkt dat?
Verder heb ik altijd [L] achter alle regels staan. Om aan te geven dat hij moet stoppen als ie een regel gevonden heeft die hij dient te gebruiken.
Even getest, maar resultaat blijft hetzelfde.
Heb het zo staan om te voorkomen dat het niet werkt als mensen per ongeluk linken naar www.site.nl//link (dubbele slash).
TeeDee schreef op donderdag 10 april 2008 @ 16:15:
r.7?

Werken de redirects etc. nu wel of niet? Zo ja, lijkt het me logisch dat het e.e.a. niet a la minuut aangepast is in de search results.
r. 7 = regel 7 uit de door mij geposte code.

De redirects wel, alleen niet naar wens. Snap dat het een tijd duurt (wellicht weken) voordat de oude url's geherïndexeerd zijn door de nieuwe, maar het testen lukt al wel, he...

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-09 20:59
Kijk eens met een plugin zoals Live HTTP Headers voor Firefox wat er daadwerkelijk allemaal gebeurt, je kan dan precies zien of je geredirect wordt en hoe vaak.
En kijk ook in de logs van apache / rewrite logs, zoals al eerder vermeld.

Het lijkt er namelijk op dat de redirect niet verwerkt wordt, waardoor de rewriterules worden toegepast.

If I can't fix it, it ain't broken.


  • wheel
  • Registratie: December 2001
  • Laatst online: 14:47
Borizz schreef op donderdag 10 april 2008 @ 18:41:
Kijk eens met een plugin zoals Live HTTP Headers voor Firefox wat er daadwerkelijk allemaal gebeurt, je kan dan precies zien of je geredirect wordt en hoe vaak.
En kijk ook in de logs van apache / rewrite logs, zoals al eerder vermeld.

Het lijkt er namelijk op dat de redirect niet verwerkt wordt, waardoor de rewriterules worden toegepast.
Even voor mijn informatie: hoe kom ik bij de logs van apache / rewrite logs?

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-09 20:59
Dat is afhankelijk van je OS.

Onder windows zul je ze over het algemeen terugvinden onder <apache root>\logs\ of iets in die richting.

Onder linux (iig Debian/ Ubuntu) in /var/log/apache of /var/log/apache2 .
Als je je website bij een webhoster host, dan kan je meestal bij je logs via een control panel zoals Plesk of je kan ze via FTP bekijken / downloaden vanuit je homedir.

If I can't fix it, it ain't broken.

Pagina: 1