завиток, чтобы следовать местоположению вместе с POST - PullRequest
3 голосов
/ 09 января 2012

Я отправляю запрос с данными POST с использованием cURL в скрипт PHP здесь: http://localhost/example/index.php

Как мне скрыть index.php и просто опубликовать сообщение на http://localhost/example?

Я попытался просто опубликовать там, но я получил заголовок 301 Moved Permanently, и если я установил CURLOPT_FOLLOWLOCATION в TRUE, запрос последует, но, похоже, потерял данные POST - я ничего не получаю в дальнем конце, используя этот file_get_contents ( 'PHP: // ввод')

.

1 Ответ

2 голосов
/ 10 января 2012

POST-данные теряются при перенаправлении, и вы не можете этого избежать.

Что вы можете сделать, чтобы достичь того, что вам нужно, это указать в .htaccess (при условии, что вы запускаете Apache)

DirectoryIndex index.php

И затем, запросив http://localhost/example/, вы получите index.php в этом каталоге.

Проблема возникает, если вы хотите предоставить index.php также для запросов, идущих на http://localhost/example (без завершающего слеша)), поскольку apache перенаправляет на URL с косой чертой по умолчанию, теряя данные POST в процессе.Чтобы справиться с этим, вы можете подделать запрос dir:

RewriteRule fakedirthatuserknows/?$ /realscriptdir/index.php [L]

/? указывает Apache на использование правила в обоих случаях: с косой чертой и без нее.Чтобы избежать перенаправления, вам нужно пропустить флаг R=301, сделав его [L].С перенаправлением это будет [R=301,L].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...