htaccess redirect naar andere pagina met zelfde querystrings

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • floriske.nl
  • Registratie: Januari 2002
  • Laatst online: 17:14

floriske.nl

Wie ik? Echt niet!

Topicstarter
Ik ben bang dat ik een erg domme vraag ga stellen, maar ik ga het er toch op wagen in de hoop dat het schaamrood achterwege blijft ;)

ik wil graag dmv htacces het volgende bereiken:

alle urls die beginnen met: plogger/index.php?level={WISSELENDE WAARDE}&id={WISSELENDE WAARDE}

doorverwijzen naar: index.php?page=handwerk&level={WISSELENDE WAARDE}&id={WISSELENDE WAARDE}

Ik dacht de oplossing te hebben met:

code:
1
2
3
4
5
6
RewriteEngine On

RewriteCond %{REQUEST_URI}  ^/plogger/index\.php$
RewriteCond %{QUERY_STRING} ^level=([0-9]*)$
RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^(.*)$ /index.php?page=handwerk&level=%1&id=%2 [R=301,L]


maar helaas :(

Ik gok dat ik iets heel simpels over het hoofd zie.....

Acties:
  • 0 Henk 'm!

  • brambo123
  • Registratie: December 2006
  • Laatst online: 22:20
Normaal worden de query string gewoon doorgegeven.
Dit zou voldoende moeten zijn:
code:
1
2
RewriteEngine On
RewriteRule ^/plogger/index\.php$ /index.php [R=301,L]


Edit:
O wacht, je wil nog iets toevoegen:
code:
1
2
RewriteEngine On
RewriteRule ^/plogger/index\.php$ /index.php?page=handwerk [R=301,QSA,L]

[ Voor 30% gewijzigd door brambo123 op 15-10-2012 12:10 ]


Acties:
  • 0 Henk 'm!

  • floriske.nl
  • Registratie: Januari 2002
  • Laatst online: 17:14

floriske.nl

Wie ik? Echt niet!

Topicstarter
probleem is dat het eerste ? van de oorspronkelijke string ook nog in een & gewijzigd moet worden

Acties:
  • 0 Henk 'm!

  • brambo123
  • Registratie: December 2006
  • Laatst online: 22:20
Weet je dat zeker?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Keep original query (default behavior)
RewriteRule ^page\.php$ /target.php [L]
# from http://example.com/page.php?foo=bar
# to   http://example.com/target.php?foo=bar

Discard original query
RewriteRule ^page\.php$ /target.php? [L]
# from http://example.com/page.php?foo=bar
# to   http://example.com/target.php

Replace original query
RewriteRule ^page\.php$ /target.php?bar=baz [L]
# from http://example.com/page.php?foo=bar
# to   http://example.com/target.php?bar=baz

Append new query to original query
RewriteRule ^page\.php$ /target.php?bar=baz [QSA,L]
# from http://example.com/page.php?foo=bar
# to   http://example.com/target.php?foo=bar&bar=baz

bron: http://www.simonecarletti...iterule-and-query-string/

Je weet zeker dat je mod_rewrite aan hebt staan? (en dat .htaccess werkt)

Acties:
  • 0 Henk 'm!

  • floriske.nl
  • Registratie: Januari 2002
  • Laatst online: 17:14

floriske.nl

Wie ik? Echt niet!

Topicstarter
mod rewrite staat inderdaad aan en een simpele 301 redirect via htaccess werkt ook

Edit:

Heb even een testbestandje op de sever gezet met de volgende code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 if( ! function_exists('apache_get_modules') ){ phpinfo(); die; }
 $result = ' not available';
 if(in_array('mod_rewrite',apache_get_modules())) $result = ' 

available';

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Check for mod_rewrite</title></head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $result"; ?></p>
</body>
</html>


en een 301 redirect toegevoegd aan de htacces van 301test.php naar test.php

wat resulteert in http://jokebosmanhobby.nl/301test.php

Het htaccess bestand is nu:

code:
1
2
3
4
Redirect 301 /301test.php http://www.jokebosmanhobby.nl/test.php

RewriteEngine On
RewriteRule ^/plogger/index\.php$ /index.php?page=handwerk [R=301,QSA,L]


De 301 redirect werkt dus, maar de rewriterule niet

Ook nog even een voorbeeld van een url die geredirect moet worden:

http://www.jokebosmanhobb...ndex.php?level=album&id=6

moet worden:

http://www.jokebosmanhobb...handwerk&level=album&id=6

[ Voor 99% gewijzigd door floriske.nl op 15-10-2012 14:01 ]


Acties:
  • 0 Henk 'm!

  • brambo123
  • Registratie: December 2006
  • Laatst online: 22:20
Hmm, zal wel niet werken omdat het een redirect is.
Maar jou code werkte niet opdat je het alleen nummers gebruikt.
En bij ?level=album&id=6 is 'album' niet echt een nummer...
Probeer dit eens:
code:
1
2
3
4
5
6
RewriteEngine On

RewriteCond %{REQUEST_URI}  ^/plogger/index\.php$
RewriteCond %{QUERY_STRING} ^level=([^&]+)$
RewriteCond %{QUERY_STRING} ^id=([^&]+)$
RewriteRule ^(.*)$ /index.php?page=handwerk&level=%1&id=%2 [R=301,L]

Acties:
  • 0 Henk 'm!

  • floriske.nl
  • Registratie: Januari 2002
  • Laatst online: 17:14

floriske.nl

Wie ik? Echt niet!

Topicstarter
helaas, ook deze werkt niet

Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 19:55
Probeer eens deze, gewoon alles wat in de query string staat doorgeven...

code:
1
2
3
4
5
RewriteEngine On

RewriteCond %{REQUEST_URI}  ^/plogger/index\.php$
RewriteCond %{QUERY_STRING} (.+)
RewriteRule ^(.*)$ /index.php?page=handwerk&%1 [R=301,L]

Acties:
  • 0 Henk 'm!

  • floriske.nl
  • Registratie: Januari 2002
  • Laatst online: 17:14

floriske.nl

Wie ik? Echt niet!

Topicstarter
wsitedesign schreef op maandag 15 oktober 2012 @ 15:02:
Probeer eens deze, gewoon alles wat in de query string staat doorgeven...

code:
1
2
3
4
5
RewriteEngine On

RewriteCond %{REQUEST_URI}  ^/plogger/index\.php$
RewriteCond %{QUERY_STRING} (.+)
RewriteRule ^(.*)$ /index.php?page=handwerk&%1 [R=301,L]
* floriske.nl roept wsitedesign uit tot held van de dag ;)

Thx, deze werkt perfect!

Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 19:55
Gebruik ik nl. zelf in mijn sites om maximale flexibiliteit toe te laten :)
Pagina: 1