Eu acho que o problema pode estar com a própria configuração do Apache ... Eu criei um script f.php
simples em um dos meus servidores Apache2 que simplesmente consistiam no seguinte:
<pre>
<?php
print_r($_SERVER);
?>
</pre>
Eu, então, criei o arquivo .htaccess
com o conteúdo exato que você especificou na sua pergunta. Agora, quando atingi http://my.server.com/tag/2/Search+For+Articles...
, recebi um erro 404. No entanto, se eu chamei como http://my.server.com/f.php?tag=2&clear=Search+For+Articles...
, obtive a saída que esperava. Em seguida, voltei para a configuração do Apache e descobri que a listagem de diretórios para o caminho em que eu estava trabalhando tinha AllowOverride None
, então alterei para AllowOverride All
e tentei o /tag/...
com prefixo URI e baixo e eis que recebi a seguinte saída :
Array
(
[REDIRECT_STATUS] => 200
[HTTP_HOST] => my.server.com
[PATH] => /usr/local/bin:/usr/bin:/bin
[DOCUMENT_ROOT] => /var/www
[SERVER_ADMIN] => webmaster@localhost
[SCRIPT_FILENAME] => /var/www/f.php
[REMOTE_PORT] => 35393
[REDIRECT_QUERY_STRING] => tag=2&clear=Search+For+Articles...
[REDIRECT_URL] => /tag/2/Search+For+Articles...
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => tag=2&clear=Search+For+Articles...
[REQUEST_URI] => /tag/2/Search+For+Articles...
[SCRIPT_NAME] => /f.php
[PHP_SELF] => /f.php
[REQUEST_TIME] => 1313889895
)
Limpei algumas das variáveis específicas do meu servidor, mas como você pode ver, QUERY_STRING é o esperado.