Questa domanda è in qualche modo correlata al mio previous question. Il trucco dell'uso di $_SERVER['REDIRECT_QUERY_STRING']
sembra funzionare solo per le variabili $_GET
.
Bene, ho un file index.php
che gestisce tutti gli 404 redirects
.
Se un utente richiede una pagina di cui doesnt esistere, ad esempio, apple.php?item=23
, quindi utilizzando $_SERVER['REDIRECT_QUERY_STRING']
posso ottenere la variabile $_GET
item=23
, ma se la variabile non $_GET
ma $_POST
è poi $_SERVER['REDIRECT_QUERY_STRING']
non funziona.
Come posso ottenere $_POST
variabile quando ho destinarli a index.php
usando l'impostazione
ErrorDocument 404 /index.php
Non è un "trucco", è solo una soluzione terribile. Perché non usare 'mod_rewrite'? ps: no, dopo il reindirizzamento 404 hai già perso i dati dei post e non riesci a ottenerlo – zerkms
non sono sicuro, ma penso che perderai tutti i dati POST durante il reindirizzamento. a cosa ti serve? forse c'è un modo diverso – miro
Si noti che non esiste un "reindirizzamento 404". I codici di risposta 4xx indicano un errore del client (404 indica che la risorsa richiesta dal client non esiste sul server), i codici 3xx sono per il reindirizzamento.Se si desidera forzare un client a reinviare e una richiesta POST identica a un nuovo URI, è necessario utilizzare un codice di stato 307. Ma sospetto che ciò che devi effettivamente usare qui sia 'RewriteCond% {REQUEST_FILENAME}! -f' e' RewriteCond% {REQUEST_FILENAME}! -d' per riscrivere le richieste di file che non esistono in uno specifico script. – DaveRandom