2016-05-05 6 views
0

Das ist meine URL: ‚http://www.example.com/page?code=2028555689‘, aber wenn ich diesen Code ausführen:

echo '<script>alert("'.$_SERVER['REQUEST_URI'].'");</script>'; 
echo '<script>alert("'.$_GET['code'].'");</script>'; 

Die ersten Warnfenster wird angezeigt: /page?code=2028555689 jedoch die zweite Warnfeld ist leer.

Warum kann ich den Wert code mit $_GET nicht abrufen? Die erste Alarmbox soll testen, ob es ein Problem mit der .htaccess Datei geben könnte und eindeutig nicht.

Hier sind die Inhalte der .htaccess Datei:

Options -Multiviews -Indexes 

# Disable Automatic Directory detection 
DirectorySlash Off 

RewriteEngine On 

# Remove trailing slashes 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)/+$ $1 [R=301,L] 

# Redirect to www version of site 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

# Remove page extension 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [L] 

# Remove index from URL 
RewriteRule ^index$/[R=301,L] 
+1

Was passiert, wenn Sie die erste Zeile entfernen? Ist das buchstäblich der Code, den du hast? – putvande

+0

Code funktioniert gut für mich. Erstellen Sie eine neue PHP-Datei, die nur diese beiden Codezeilen zusammen mit ' ' – Bijan

+0

enthält. Wenn ich die erste Zeile auskommentiere, bekomme ich nur eine leere Warnmeldung. –

Antwort

0

Ich denke, der Grund $_GET wird nichts abrufen, weil meine 404-Seite dynamisch den Inhalt erzeugt. Obwohl ich einen Code geschrieben habe, um einen 200-Status zu generieren, wird $_GET immer noch nichts abrufen. Die 404-Seite wird immer aufgerufen, wenn keine zwischengespeicherte Seite vorhanden ist. Die Lösung ist einfach, nicht $_GET verwenden. Ich habe es jetzt funktioniert, indem Sie strtok mit $_SERVER['REQUEST_URI'] anrufen, um die $_GET Daten zu retreive.