Redirect script werkt niet meer

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • YoshiBignose
  • Registratie: April 2004
  • Laatst online: 09:02
Ik gebruik het volgende redirect script in m'n .htaccess:

RewriteRule ^(.*)/(.*)/(.*)/ja/ open.php?aap=$1&noot=$2&mies=$3

Het idee hiervan is dat een normale pagina zo is opgesteld:

https://www.test.nl/aap/noot/mies/

Als je op die pagina dan klinkt op de link: https://www.test.nl/aap/noot/mies/ja/ dan zou het moeten werken en zou hij open.php moeten openen. Dat doet ie echter niet meer (vroeger wel).

Als ik de link hard invul via /open.php dan werkt het wel. Wat gaat er mis?

Facts don't care about your feelings

Alle reacties


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
YoshiBignose schreef op dinsdag 10 juli 2018 @ 17:29:
Dat doet ie echter niet meer (vroeger wel).
Well, what changed?
Wat heb je zelf al geprobeerd, gezocht, gevonden? Ik hoef jou toch zeker niet meer op onze Quickstart te wijzen?
YoshiBignose schreef op dinsdag 10 juli 2018 @ 17:29:
Het idee hiervan is dat een normale pagina zo is opgesteld:

https://www.test.nl/aap/noot/mies/
[...]
Als je op die pagina dan klinkt op de link: https://www.test.nl/aap/noot/mies/ja
Waarom eindigt de ene url in /ja en de andere niet? Je weet dat je rewriterule daar wel naar 'zoekt' (sterker nog: die "zoekt" naar /ja/)?

[ Voor 49% gewijzigd door RobIII op 10-07-2018 18:24 ]

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!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 09:12
Zelfde server, zelfde Apache versie voor en na?

Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

Bij je voorbeeld heb je in elk geval geen trailing slash..

Acties:
  • 0 Henk 'm!

  • YoshiBignose
  • Registratie: April 2004
  • Laatst online: 09:02
De trailing slash was een typefout van mij, die zit er wel gewoon in. Ik weet niet precies wanneer het niet meer is gaan werken. Er is wel een server switch geweest, maar ben er nu pas achter gekomen en dat was misschien wel een jaar geleden.

Het idee is dat op deze pagina: https://www.test.nl/aap/noot/mies/ dus een link staat die naar https://www.test.nl/aap/noot/mies/ja/ gaat puur omdat het er mooier uit ziet. Eigenlijk linkt ie natuurlijk gewoon naar https://www.test.nl/open.php?aap=$1&noot=$2&mies=$3

De vraag is waarom die redirect niet meer werkt...

Facts don't care about your feelings


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
YoshiBignose schreef op dinsdag 10 juli 2018 @ 18:35:
De vraag is waarom die redirect niet meer werkt...
Omdat je rewriterule naar /ja/ in je URL zoekt :? Laat maar, ik zie 't nu (beter):
YoshiBignose schreef op dinsdag 10 juli 2018 @ 18:35:
Het idee is dat op deze pagina: https://www.test.nl/aap/noot/mies/ dus een link staat die naar https://www.test.nl/aap/noot/mies/ja/ gaat puur omdat het er mooier uit ziet.
Als je het nou even niet overcompliceert met de pagina zélf; da's toch helemaal niet relevant?
Het idee is dat op deze pagina: https://www.test.nl/who/cares/ dus een link staat die naar https://www.test.nl/aap/noot/mies/ja/ gaat
Heb je nog meer rewriterules? En zo ja, welke?

[ Voor 59% gewijzigd door RobIII op 10-07-2018 18:41 ]

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!

  • YoshiBignose
  • Registratie: April 2004
  • Laatst online: 09:02
Ja wel 100... maar de meeste zijn niet relevant hiervoor denk ik. Deze staan er wel boven:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(css|jpg|png|gif|bmp|js) [NC]
RewriteCond %{REQUEST_URI} !index\.html [NC]

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.test\.nl$ [NC]
RewriteRule ^(.*)$ https://www.test.nl/$1 [L,R=301]

Kan dat ergens voor zorgen?

Facts don't care about your feelings


Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

Je zal toch echt meer informatie moeten geven. Wat doet ie niet en belangrijker wat doet ie wel?

Staat er iets in de logs?

Anders zal je Apache meer moeten laten loggen zodat je ziet wat ie doet.

Acties:
  • 0 Henk 'm!

  • YoshiBignose
  • Registratie: April 2004
  • Laatst online: 09:02
Oh oke. Ik dacht misschien iets simpels... er is gewoon een code verkeerd of gebruik ik iets dat niet meer mag. Ga er wel dieper in duiken dan...

Facts don't care about your feelings


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Heb je überhaupt enig idee wat je aan 't doen bent of ben je maar wat aan 't copy/pasten van 't web ofzo?

Natuurlijk "kan dat ergens voor zorgen". Of het je probleem is is amper te zeggen want relevante(!) informatie geef je niet bepaald.

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!

  • YoshiBignose
  • Registratie: April 2004
  • Laatst online: 09:02
Laat maar weer, vraag het wel op een forum waar mensen normaal kunnen reageren.

Facts don't care about your feelings


Acties:
  • +1 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 13:17

AW_Bos

Liefhebber van nostalgie... 🕰️

YoshiBignose schreef op dinsdag 10 juli 2018 @ 20:59:
Laat maar weer, vraag het wel op een forum waar mensen normaal kunnen reageren.
Huh? Hier wordt gewoon normaal gereageerd hoor? ALs je wat minder geheimzinnig bent, kunnen we je makkelijker helpen.

Maar je hebt het over 100 reguliere expressies? Is dat niet een beetje erg overdreven? Ik neem aan dat je elk pad per stuk afhandelt?

Is een single-point-of-entry niet een beter idee? Dan gebruik je jouw index.php om alle verzoeken af te handelen, waarna je die daar routeert naar de juiste scripts.

.htaccess:
code:
1
2
3
4
5
6
7
8
9
RewriteEngine on
RewriteBase /

# directories en files met rust laten.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

# Alles doorsturen naar de index.php
RewriteRule . index.php [L,QSA]


index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$uriData = @parse_url($_SERVER['REQUEST_URI']);
$path = '';
if ($uriData === false) {
// parse_url() faalt. Error.
} else {
    if (isset($uriData['path'])) {
$path = trim(substr($uriData['path'], strlen(dirname($_SERVER['SCRIPT_NAME']))), '/');
    }
}
print_r($path);
?>

[ Voor 41% gewijzigd door AW_Bos op 10-07-2018 23:03 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

YoshiBignose schreef op dinsdag 10 juli 2018 @ 20:59:
Laat maar weer, vraag het wel op een forum waar mensen normaal kunnen reageren.
We hebben toch normaal gereageerd maar zonder meer informatie is het gewoon niet oplosbaar. Althans niet zonder dat we 1.001 mogelijke dingen gaan roepen waar jij (en wij) niets aan hebben.

Heb je al in je logs gekeken en evt je loglevel verhoogd:
code:
1
LogLevel alert rewrite:trace3

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
YoshiBignose schreef op dinsdag 10 juli 2018 @ 17:29:
RewriteRule ^(.*)/(.*)/(.*)/ja/ open.php?aap=$1&noot=$2&mies=$3
Deze is al fout omdat '/aap/noot/mies/aap/ja/' en '/aap//mies/ja/' ook matcht.

Reguliere expressies moet je echt duidelijker zijn wat mag, zoals:
code:
1
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/ja/ open.php?aap=$1&noot=$2&mies=$3


Kan ook in PHP:
PHP:
1
$path = explode('/', $_SERVER['PATH_INFO']);


Succes met het oplossen van je bugs.

[ Voor 12% gewijzigd door DJMaze op 11-07-2018 14:47 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Dragonk1ss
  • Registratie: Juni 2011
  • Laatst online: 26-03 17:38
Het vervelende aan rewrite rules is dat ze lastig te debuggen zijn. Je ziet immers niet wat er op de server gebeurd.

Je kan echter wel logging aanzetten, die stap voor stap laat zien wat er gebeurd.
De syntax is wel verschillend voor Apache 2.2 en 2.4, dus die moet ik eerst weten?
Bij 2.2 kan het nog door een regel aan de .htaccess toe te voegen:

code:
1
2
RewriteLog /path/to/log
RewriteLogLevel 5


Bij 2.4 moet het in de httpd.conf:

code:
1
LogLevel alert rewrite_module:trace3


De logging wordt in de https error_log weggeschreven.

Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 13:17

AW_Bos

Liefhebber van nostalgie... 🕰️

@Dragonk1ss Uit interesse, hoe ziet die log eruit? Ik ken deze feature niet eens :)

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes

Pagina: 1