Archief - ALGORITME: Mod Rewrite probleem.

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

orez

Legacy Member
Dit is de url:

http://orez.hiphop-moves.com/mod_rewrite/test/1

dit is de mainpage:
http://orez.hiphop-moves.com/mod_rewrite/

dit zijn mijn mod rewrite rules:

Code:
RewriteEngine on
RewriteRule /test/([0-9]+) /test.php?id=$1

dit is de code van mijn test.php :

PHP:
<?php
    if($_GET["id"] == 1) {
        echo "ok";
    } else {
        echo "probleem";
        echo "<br /> id is:" . $_GET["id"];
    }
?>

dus heel simpel, ik doe een mod rewrite, en kijk als hij de 1 als var doorgeeft. Maar precies doet hij da nie. Aangezien hij bij "id is:" helemaal niets weergeeft... De rewriterule ziet dan wel weer dat /test/ naar test.php moet verwijzen.

Iemand die het probleem ziet/weet?

Smoerf

Legacy Member
Code:
Options +FollowSymLinks 
RewriteEngine On
RewriteRule ^test/(.*)$ /test.php?id=$1

Wat doet dit?

Als het nog niet werkt kan het zijn dat je de .htaccess in de root moet zetten

(ben het niet zeker want .htaccess is niet bepaald mijn sterkste kant...)

passero

Legacy Member
Ik geloof dat je idd het $ moest gebruiken om dan verder te verwijzen in uw $1.

orez

Legacy Member
verandert niets.

Heb een echo van PHP_SELF + PHP_QUERYSTRING uitgevoerd, en precies wil hij de link nemen zoals hij in adresbalk ingevoerd is.

Rewrite hij hem dus precies niet naar de header test.php?id=1 nu is PHP er idd niets mee.. Nu ben ik ook ff nimeer mee met heel het mod_rewrite gedoe :)

passero zei:
Ik geloof dat je idd het $ moest gebruiken om dan verder te verwijzen in uw $1.

heeft er op zich niets mee te maken

^ = begin lijn
$ = einde lijn

de Regular Expression is de variabele :)
en aangezien ik hier maar met 1 lijntje zit, hoeven ze er ni bij

dJeez

Legacy Member
Waar staan uw mod_rewrite rules? In de globale httpd.conf of in een .htaccess - en indien dat laatste geval, in welke folder staat die .htaccess dan?

In principe zou het volgende moeten werken als je met een .htaccess in de mod_rewrite folder werkt en het test.php script daar ook staat :
Code:
RewriteEngine On
RewriteRule ^test/([0-9]+)$ test.php?id=$1

BTW mod_rewrite z'n logging aanzetten is altijd handig om problemen met rewrite rules op te lossen...

orez

Legacy Member
ik heb de folder mod_rewrite dus

Daarin staat .htaccess / index.php / test.php
trouwens snel vraagje hoe zet je die logging aan? tzijn namelijk mijn eerste mod_rewrite stapjes, kheb da veel te lang uitgesteld :p

dJeez

Legacy Member
Probleem is dat je die wellicht enkel lokaal aan kan zetten aangezien de logging statements in de httpd.conf moeten staan (server of virtual host config), maar het volstaat daar dat je iets als volgt toevoegt :
Code:
RewriteLog "D:\temp\rewrite.log"
RewriteLogLevel 2

De loglevel hoger zetten zorgt voor meer (gedetailleerde) output, de locatie spreekt voor zich :p.

orez

Legacy Member
dJeez zei:
Probleem is dat je die enkel lokaal aan kan zetten aangezien de logging statements in de httpd.conf moeten staan, maar het volstaat daar dat je iets als volgt toevoegt :

Code:
RewriteLog "D:\temp\rewrite.log"
RewriteLogLevel 2
De loglevel hoger zetten zorgt voor meer (gedetailleerde) output, de locatie spreekt voor zich :p.

zal is proberen, site is gehost op priorweb, dus daar moet het werken, zal es prutsen om die logfile weg te schrijven in de mod_rewrite folder

*edit: ok als ik die logrules toevoeg, dan krijg ik een internal server error 500 ..

dJeez

Legacy Member
orez zei:
*edit: ok als ik die logrules toevoeg, dan krijg ik een internal server error 500 ..
Ik zeg het toch, dat kan enkel in de httpd.conf (of daarin geinclude conf bestanden), NIET in de .htaccess, vandaar wellicht uw server error 500. Bij mijn weten laat Priorweb geen wijzigingen aan de httpd config toe. Je zal dus eerst lokaal moeten testen alvorens je scripts online te zetten (zoals het hoort ook :p).

orez

Legacy Member
dJeez zei:
Ik zeg het toch, dat kan enkel in de httpd.conf (of daarin geinclude conf bestanden), NIET in de .htaccess, vandaar wellicht uw server error 500. Bij mijn weten laat Priorweb geen wijzigingen aan de httpd config toe. Je zal dus eerst lokaal moeten testen alvorens je scripts online te zetten (zoals het hoort ook :p).

alé, kzal voor u es mijne wamp opstarten :p

orez

Legacy Member
hmm, lokaal werkt da dus perfect :s

het probleem zal dan hoogstwaarschijnlijk bij priorweb liggen..
zal es horen bij hun support als zij daar iets van weten, maja... ik hoop er ni op :)

dJeez

Legacy Member
Probeer eens met volgende .htaccess in uw mod_rewrite folder :
Code:
Options -Indexes +FollowSymLinks
RewriteEngine on
RewriteRule ^test/([0-9]+)$ test.php?id=$1 [NC,L]

Die zou toch wel moeten werken op Priorweb (net getest op een domein dat gehost wordt op binary - dat is 1 van hun servers)...

orez

Legacy Member
es proberen I'll let you know

*edit: just getest nog steeds niets :/

Strangler

Legacy Member
ik heb dit, en werkt voor mij:
Code:
RewriteRule ^(.+)\.htm /index.php?pagina=$1.php
en deze
Code:
RewriteRule ^fr/(.+)\.htm /fr/index.php?pagina=$1.php

orez

Legacy Member
die MultiViews did the trick precies. Maar ik zit nu alweer snel met een volgende probleempje, de rule is al herschreven naar iets meer bruikbaars, dus algemeen ipv test only.

Code:
RewriteRule ^(.*)/([0-9]+)/$ $1.php?id=$2 [NC,L]

werkt momenteel perfect

Nu alvast enorm bedankt voor je inspanningen en antwoorden dJeez :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan