2010-05-22 3 views
10

Wenn POST-Anfragen an "http://domain.com/directory/" gesendet werden, werden die POST-Daten nicht empfangen. Aber wenn es an "http://domain.com/directory/index.php" gesendet wird, wird es empfangen.PHP empfängt keine POST-Anfragen unter/directory/nur unter /directory/index.php

Wie kann ich es machen, wenn nur das Verzeichnis aufgerufen wird? Vielen Dank!

+3

Es gibt keinen Grund, warum es den POST auf diese Anfrage nicht erhalten würde, das einzige, was ich denken kann, ist eine mögliche Weiterleitung, vielleicht wenn Sie einige funky .htaccess Dateien eingerichtet haben. –

+5

Wenn Sie "http : //domain.com/directory/ "Sehen Sie in einem Browserfenster Inhalte unter dieser Adresse, wird eine Fehlermeldung angezeigt oder ändert sich die Browseradresse in" http://domain.com/directory/index. php "? –

+5

Eine andere mögliche Umleitungsquelle ist die Verwendung von "/ directory" anstelle von "/ directory /". Das Vergessen des Schrägstrichs kann ebenfalls eine Umleitung auslösen. – janmoesen

Antwort

4

Haben Sie versucht, ein Tool wie HttpFox für Firefox zu verwenden, um zu sehen, ob Sie umgeleitet werden, wenn Sie eine Anfrage an das Verzeichnis selbst stellen? Ich weiß, dass eine Weiterleitung eine POST-Anfrage beenden kann, wenn sie in eine GET-Anfrage umgewandelt wird.

4

Wie Lucanos sagte, ist der Webserver auf index.php umleiten? POST-Daten können zwischen den Seiten verloren gehen, wenn Sie umleiten. Probieren Sie GET aus und prüfen Sie, ob die URL mit den korrekten Daten endet.

6

Wenn Sie Apache ausführen, prüfen Sie, ob das Modul mod_dir aktiviert und korrekt konfiguriert ist. Dies sind die Inhalte meiner dir.conf:

<IfModule mod_dir.c> 
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm 
</IfModule> 
+0

Auch diese Regeln könnten in .htaccess unter/directory/ –

+1

gefunden werden Aber ich kann index.php sehen, wenn ich nur auf das Verzeichnis zugreifen, das ist nicht das Problem. Nur die Post ist verloren. – Lazlo

0

Wenn das Verzeichnis enthält index.html alongwith index.php, benennen Sie die Datei index.html sonst die Datei löschen, denn wenn Sie den Pfad zum Verzeichnis geben nur, Die index.html wird immer aktiviert, unabhängig davon, ob die index.php im selben Verzeichnis existiert.

+0

Nein, nicht immer, es hängt von der Reihenfolge der DirectoryIndex Einstellung in Apache –

3

erstellen „.htaccess“ Datei in/Verzeichnis/mit diesem Inhalt

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

Es erzählt Server zu routen alle Anfragen, die physikalisch nicht möglich sind (da keine Datei oder einen Ordner für diese Anforderung vorhanden ist) zu indizieren. php, Vorteil davon ist, dass Ihre .css-Datei .js, .jpg-Dateien nicht zu index.php weitergeleitet werden.

+0

Das ist perfekt und was für mich funktionierte. – KyleT

+0

Ich habe das versucht, aber es hat nicht funktioniert :( –

Verwandte Themen