To pytanie jest w pewnym stopniu związane z moim previous question. Sztuczka używania $_SERVER['REDIRECT_QUERY_STRING']
wydaje się działać tylko dla zmiennych $_GET
.
Cóż, mam plik index.php
, który obsługuje wszystkie 404 redirects
.
Jeżeli wnioski użytkowników na stronie, która nie robi istnieją, mówią apple.php?item=23
, a następnie za pomocą $_SERVER['REDIRECT_QUERY_STRING']
mogę uzyskać $_GET
zmienną item=23
, ale jeśli zmienna nie $_GET
ale $_POST
jest następnie $_SERVER['REDIRECT_QUERY_STRING']
nie działa.
Jak mogę uzyskać $_POST
zmienną kiedy przekierować go do index.php
stosując następujący .htaccess ustawienia
ErrorDocument 404 /index.php
To nie jest "sztuczka", to po prostu straszne rozwiązanie. Dlaczego nie używać 'mod_rewrite'? ps: nie, po przekierowaniu 404 masz już utracone dane pocztowe i nie możesz tego uzyskać – zerkms
nie jestem pewien, ale myślę, że stracisz wszystkie dane POST podczas przekierowania. Do czego ci to potrzebne? może jest inny sposób. – miro
Należy zauważyć, że nie ma czegoś takiego jak przekierowanie "404". Kody odpowiedzi 4xx oznaczają błąd klienta (404 wskazuje, że zasób żądany przez klienta nie istnieje na serwerze), kody 3xx służą do przekierowania.Jeśli chcesz zmusić klienta do ponownego przesłania i identycznego żądania POST do nowego identyfikatora URI, powinieneś użyć kodu statusu 307. Ale podejrzewam, że to, czego faktycznie używasz, to "RewriteCond% {REQUEST_FILENAME}! -f" i "RewriteCond% {REQUEST_FILENAME}! -d', aby przepisać żądania dla plików, które nie istnieją w określonym skrypcie. – DaveRandom