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]
.