mod-rewrite THE_REQUEST und (REQUEST_URI oder REQUEST_FILE) geben einen anderen Dateinamen an - warum?

Ich war das Experimentieren mit mod-rewrite. Ich dachte, was ich wollte, war einfach, aber ich bekomme nicht die angeforderte Datei URI über REQUEST_URI. Eher die delived name weitergegeben wird.

Den Handbuch sagt:

THE_REQUEST

Den vollständigen HTTP-request
Zeile gesendet, die vom browser an den server
(z.B. "GET /index.html HTTP/1.1").
Dies stellt keine zusätzliche
gesendeten Header durch den browser. Diese
Wert wurde nicht unescaped
(dekodiert), im Gegensatz zu den meisten anderen Variablen
unten.

REQUEST_URI

Die Ressource angefordert
in der HTTP-Anforderung Linie. (In der
obigen Beispiel wäre dies
"/index.html".)

Doch die beiden geben verschiedenen Datei-Namen in meinen tests. Ich habe einen bootstrap.php durch die ich wollte senden Sie alle Anfragen. Dies ist der test-Datei:

<?php
echo $_GET['requestedURI'];
?>

auf dem .htaccess-Datei habe ich:

### REWRITE RULES ###
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .+ bootstrap.php?requestedURI=%{REQUEST_URI} [L]

Anfordern http://localhost/test.htm stellt heraus: /bootstrap.php

wenn ich THE_REQUEST statt REQUEST_URI in der .htaccess bekomme ich GET /test.htm HTTP/1.1

Also warum sich nicht THE_REQUEST? Naja, sobald ein query-string vorhanden ist, Dinge zu brechen. Wenn ich Anfrage: http://localhost/test.htm?x=1&y=2 bekomme ich GET /test.htm?x=1 die erste kaufmännische und Dinge zerbricht. Ich denke, es sollte möglich sein, zum alle zu ersetzen kaufmännische und-Zeichen im querystring mit %26, so dass es funktionieren würde, aber ich habe es nicht geschafft bisher...

Also kann mir jemand sagen, warum REQUEST_URI ausfällt und wie es zu lösen ist oder wie umschreiben Sie das kaufmännische und-Zeichen zu " %26 in den query-string?

Dank.

EDIT: Die oben genannten Berichts für xampp 1.7.3 auf Win 7. Ich versuchte es auf eine Produktion Linux-system in der Zwischenzeit und es REQUEST_URI gibt, was es sollte.

InformationsquelleAutor C.O. | 2011-05-15
Schreibe einen Kommentar