Toon posts:

[Apache] rewrite werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb het volgende in mijn .htacces gezet:
code:
1
2
3
4
RewriteEngine On
RewriteBase /rewrite/news
RewriteRule news.php.* - [L]
RewriteRule ^(.*) /rewrite/news.php?id=$1

In mijn httpd.conf staat dit
code:
1
2
3
4
5
6
<Directory />
    Options All MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

En ik heb op mijn webserver onder win2k een directory "rewrite" met hierin news.php

Als ik naar [url="http://localhost/rewrite/news.php?id=1"]http://localhost/rewrite/news.php?id=1[/url] ga, dan doet ie iets met nummer 1 (verder niet belangrijk)
Nou wil ik hetzelfde bereiken met:
[url="http://localhost/rewrite/news/1"]http://localhost/rewrite/news/1[/url]

En ik heb wat met rewrite geprobeerd maar het lukt nog niet echt.
Iemand een idee hoe dit moet?

grtz,
Chris

Verwijderd

Topicstarter
Ik heb alles al gelezen in de search,
en ik ben ook al op de apache homepage geweest,
maar ik kom er nog niet uit....

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Lijkt me dat tussen de [search=apache rewrite] toch wel wat nuttigs zit?

Verwijderd

Topicstarter
Ja daar heb ik bovenstaande dingen ook van,
maar het werkt niet.

Verwijderd

Topicstarter
Het werkt absoluut nog niet.
Ik heb echt ALLES gelezen over rewrite maar het werkt gewoon niet.
Iemand nog een idee?
Of kan dit topic anders misschien naar P&W gemoved worden, misschien dat daar iets meer mensen weten hoe dit werkt? En kom alsjeblieft niet aan met links naar oude topics of naar de search want dat heb ik al geprobeerd

Verwijderd

Topicstarter
Toch nog ff omhooghalen

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Ik weet er zelf nog niet veel van maar we zijn er ook mee bezig, misschien kan dit je een beetje helpen. Het is trouwens binnen de httpd.conf

http://www.kun.nl/fbw/vckuntest.html

HTH.

Everyone complains of his memory, no one of his judgement.


  • Breuls
  • Registratie: Januari 2000
  • Laatst online: 12-02 16:35

Breuls

Bad Wolf

Op zaterdag 20 oktober 2001 20:05 schreef ceidhof het volgende:
Als ik naar [url="http://localhost/rewrite/news.php?id=1"]http://localhost/rewrite/news.php?id=1[/url] ga, dan doet ie iets met nummer 1 (verder niet belangrijk)
Nou wil ik hetzelfde bereiken met:
[url="http://localhost/rewrite/news/1"]http://localhost/rewrite/news/1[/url]

En ik heb wat met rewrite geprobeerd maar het lukt nog niet echt.
Iemand een idee hoe dit moet?

grtz,
Chris
Volgens mij heb je hier geen rewriting voor nodig. Met MultiViews en $PATH_INFO kun je respectievelijk het bestand zonder extensie aanroepen en de 1 in het script stoppen.
Je kunt dit gebruiken om die 1 op dezelfde manier te verwerken als wanneer je ?id=1 gebruikt:
PHP:
1
2
3
<?
list($id, $two, $three) = explode("/", substr($PATH_INFO,1));
?>

Die $two en $three zouden variabelen kunnen zijn die je met /bla/bla aan de URL kan toevoegen.

Verwijderd

Op zaterdag 27 oktober 2001 12:08 schreef Breuls het volgende:

[..]

Volgens mij heb je hier geen rewriting voor nodig. Met MultiViews en $PATH_INFO kun je respectievelijk het bestand zonder extensie aanroepen en de 1 in het script stoppen.
Je kunt dit gebruiken om die 1 op dezelfde manier te verwerken als wanneer je ?id=1 gebruikt:
PHP:
1
2
3
<?
list($id, $two, $three) = explode("/", substr($PATH_INFO,1));
?>

Die $two en $three zouden variabelen kunnen zijn die je met /bla/bla aan de URL kan toevoegen.
Dan moet je je php file toch op het laatste nivo zetten, en da's niet de bedoeling als ik het zo zie ?

Verwijderd

Op deze pagina staat uitgelegd hoe je het via een mix van Apache en PHP kunt, maar toch vind ik de oplossing via mod_rewrite mooier, als je de juiste syntax kunt vinden :)

  • Breuls
  • Registratie: Januari 2000
  • Laatst online: 12-02 16:35

Breuls

Bad Wolf

Op vrijdag 02 november 2001 10:19 schreef TheNarfstyler het volgende:
Dan moet je je php file toch op het laatste nivo zetten, en da's niet de bedoeling als ik het zo zie ?
Je PHP file heet in het voorbeeld news.php.
Door MultiViews aan te zetten kun je dat bestand benaderen zonder ".php" erachter, en als je /bla/bla/bla erachter zet kun je met dat $PATH_INFO die "bla" "bla" en "bla" als variabelen in je script behandelen.

$PATH_INFO rekent overigens het pad vanaf de filename, dus bij dit:
[url="http://localhost/rewrite/news/archief/short/1"]http://localhost/rewrite/news/archief/short/1[/url]
...waarbij news.php de PHP-file is, is $PATH_INFO dit: /archief/short/1 .

Verwijderd

Op vrijdag 02 november 2001 13:21 schreef Breuls het volgende:

[..]

Je PHP file heet in het voorbeeld news.php.
Door MultiViews aan te zetten kun je dat bestand benaderen zonder ".php" erachter, en als je /bla/bla/bla erachter zet kun je met dat $PATH_INFO die "bla" "bla" en "bla" als variabelen in je script behandelen.

$PATH_INFO rekent overigens het pad vanaf de filename, dus bij dit:
[..]

...waarbij news.php de PHP-file is, is $PATH_INFO dit: /archief/short/1 .
Dat kan ik dus niet gebruiken, want ik gebruik de syntax: index.php?page=news&news_id=23, en ik wil niet /index/news/23/ ofzo gebruiken, maar gewoon /news/23/.

Verwijderd

Ik heb het trouwens gevonden in Apache:
code:
1
2
3
4
RewriteEngine on
RewriteRule ^/news/([1234567890]+)/   /index.php?page=news&news_id=$1 [NE]
RewriteRule ^/articles/([1234567890]+)/   /index.php?page=articles&article_id=$1 [NE]
RewriteRule ^/columns/([1234567890]+)/   /index.php?page=columns&column_id=$2 [NE]

Moet die regexp nog eens mooier schrijven, maar ik heb m'n perl boek ff niet hier :)

Het punt waarom het eerst niet wou lukken, is dat dit alleen werkt in de apache.conf ! De .htaccess files worden op een ander stadium geparsed, en voor dit soort dingen is dat dan te laat. Dus je moet het echt in de server cfg zetten. Da's alleszins hoe ik het uit de doc opmaak, en in praktijk was het dus idd zo.

  • Breuls
  • Registratie: Januari 2000
  • Laatst online: 12-02 16:35

Breuls

Bad Wolf

Op vrijdag 02 november 2001 13:47 schreef TheNarfstyler het volgende:
Dat kan ik dus niet gebruiken, want ik gebruik de syntax: index.php?page=news&news_id=23, en ik wil niet /index/news/23/ ofzo gebruiken, maar gewoon /news/23/.
Ah, dan begreep ik je verkeerd :)
Pagina: 1