[PHP/HTACCESS] Probleem met SEO url's

Pagina: 1
Acties:
  • 468 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
ik ben bezig voor een website, en daar moeten de url's geoptimaliseerd worden, nu had ik daar een mooi script voor gevonden dat werkte met htaccess en php,

de htaccess:
code:
1
2
RewriteEngine on
RewriteRule ^page/(.*)/?$ index.php?page=$1 [L]


in php kan ik dan gewoon alles achter page opvragen, en zo dus de juiste informatie tonen. Dit werkt ook perfect als je http://www.mijndomein.nl/page/Klanten/Test/ ofzo doet, dan krijg je netjes Klanten/Test/ binnen, maar nu wil ik het dus zo hebben dat die page er ook tussenuit kan, ik dacht dat zo te doen

code:
1
2
RewriteEngine on
RewriteRule ^(.*)/?$ index.php?page=$1 [L]


maar dat werkt dus niet, ik krijg dan een error, als ik bijv. de bovenstaande url http://www.mijndomein.nl/Klanten/Test/ invoer krijg ik de error dat de pagina /Klanten/Test/ niet kan worden gevonden...

iemand een idee hoe ik dit op kan lossen?

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 00:41

TeeDee

CQB 241

En deze rewrite:
code:
1
RewriteRule ^/(?i)/(.*)/?$ /page.aspx?page=$1 [l]

Zo werkt ie bij onze bedrijfs site wel. Dus nog een / na de ^ plaatsen.

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


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

code:
1
RewriteRule ^(.*)$ index.php?page=$1
Is waarschijnlijk wat je zoekt... :)
Meerder pagina's / variabelen toevoegen doe je dan inderdaad zoals eerder vermeld door de / en dan de volgende regular expression toe te voegen... :)
code:
1
RewriteRule ^(.*)/(.*)$ index.php?page=$1&page2=$2
zou dan kunnen werken voor twee pagina's, en zo voorts... :)

Bedenk je overigens wel dat als je bijvoorbeeld
code:
1
RewriteRule ^(.*)/(.*)/?$ index.php?page=$1&page2=$2
doet, dat je dan achter elke URL een ? moet zetten om de regel te laten werken!

[ Voor 82% gewijzigd door CH4OS op 12-06-2007 17:19 ]


Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
@TeeDee, nee helaas dat werkt niet...

@GJ-tje
dat werkt bij mij ook niets, heb bijvoorbeeld http://www.djaart.nl/, met daarin een .htacces met:
code:
1
2
RewriteEngine on
RewriteRule ^(.*)$ index.php?page=$1


en in de index.php staat dan:
code:
1
2
3
4
<?php
$page_info = $_REQUEST["page"];
echo "Pagina info: $page_info";
?>

ik wil dan als ik http://www.djaart.nl/Muziek/Top10/ ofzo bijvoorbeeld, dat $page_info dan Muziek/Top10/ bevat...

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 00:41

TeeDee

CQB 241

avdwerf schreef op dinsdag 12 juni 2007 @ 17:26:
@TeeDee, nee helaas dat werkt niet...

@GJ-tje
dat werkt bij mij ook niets, heb bijvoorbeeld http://www.djaart.nl/, met daarin een .htacces met:
code:
1
2
RewriteEngine on
RewriteRule ^(.*)$ index.php?page=$1


en in de index.php staat dan:
code:
1
2
3
4
<?php
$page_info = $_REQUEST["page"];
echo "Pagina info: $page_info";
?>

ik wil dan als ik http://www.djaart.nl/Muziek/Top10/ ofzo bijvoorbeeld, dat $page_info dan Muziek/Top10/ bevat...
Moet je niet
PHP:
1
2
$page_info = $_GET["page"];
echo "Pagina info: $page_info";

gebruiken?

Edit: hmm, volgens mij zou dat niet uit mogen maken.

[ Voor 3% gewijzigd door TeeDee op 12-06-2007 17:51 ]

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


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
@TeeDee

nee dat maakt dus niets uit...
kijk bij deze site werkt het dus: http://www.exclusivedesign.nl/
zo wil ik het ook graag hebben...

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 00:41

TeeDee

CQB 241

Dat hoeft niet persé met Htaccess e.d. te gaan.

Wat je nog zou kunnen doen is om de volledige REQUEST collectie af te lopen en te kijken of je iets ziet.

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


Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
uuuhm, ik snap niet helemaal wat je bedoelt?

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Ik zou het gewoon simpeler doen:
code: .htaccess
1
2
3
4
5
6
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

PHP:
1
2
3
$url = explode("/", $_SERVER['PATH_INFO']);
array_shift($url);
print_r($url);
En je hebt alles achter je root in je array $url staan :)

Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
@ mithras

thnx voor je reply, ik heb dit nu zo aangepast, maar kijk wat ik dan krijg:

http://www.djaart.nl/Muziek/Top10/

een lege array :(

Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
heb de code van mithras iets aangepast

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L]

en nu kan ik dus wel die page opvragen en daar staat dan de info in, thnx voor de replies!!

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Ik had hem inderdaad niet in een variabele gestopt, maar je moet het wel met path info uit kunnen lezen, heb je die hele get variabele niet nodig :)

edit:
Niet dat dat erg is ofzo...

[ Voor 11% gewijzigd door mithras op 13-06-2007 10:22 ]


Acties:
  • 0 Henk 'm!

  • avdwerf
  • Registratie: Maart 2007
  • Laatst online: 11-09 13:58
ja ok maar wat is dus al zei, als ik het op jou manier doe staat er helemaal niks in $_SERVER["path_info"], misschien is dat een instelling die uitstaat in php ofzo?

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Het ligt aan je php versie en je register_globals setting, zie ook http://nl3.php.net/manual...reserved.variables.server voor meer informatie over global variables :)

offtopic:
Maar nogmaals, het kan prima met een variabele. Maar uit "schoonheids" oogpunt is het niet nodig, verbruik je onnodige resources (whoohoo, 3bytes ofzo) en ietwat ugly. Het gaat nl fout bij http://www.mijndomein.nl/page/Klanten/Test/?page=iets :)

[ Voor 40% gewijzigd door mithras op 13-06-2007 13:58 ]

Pagina: 1