Вы должны закодировать специальные символы ?
и =
в URL, который используется для запроса.
Например, если ваш файл называется strange.php?plop=1
, тогда ваш URL должен быть:
http://tests/temp/strange.php%3Fplop%3D1
В PHP это можно сделать с помощью функции urlencode()
.
Редактировать после комментария: в этом случае (что на самом деле нехорошо ...) , решение может заключаться в использовании правила переписывания, подобного этому:
RewriteRule .* temp.php
Это перенаправит все на temp.php
.
Там вы можете поработать с чем-то в $_SERVER
, чтобы найти запрос.
Например, если я позвоню по этому адресу:
http://tests/temp/strange.php?plop=1
И используйте эту часть кода в моем temp.php
:
var_dump($_SERVER);
Я получаю этот вывод:
array
...
'SERVER_NAME' => string 'tests' (length=5)
'SERVER_ADDR' => string '127.0.0.1' (length=9)
'SERVER_PORT' => string '80' (length=2)
...
'REDIRECT_QUERY_STRING' => string 'plop=1' (length=6)
'REDIRECT_URL' => string '/temp/strange.php' (length=17)
...
'QUERY_STRING' => string 'plop=1' (length=6)
'REQUEST_URI' => string '/temp/strange.php?plop=1' (length=24)
'SCRIPT_NAME' => string '/temp/temp.php' (length=14)
...
Итак, я думаю, я мог бы перестроить имя файла, используя $_SERVER['REQUEST_URI']
.