Этот phpinfo() демонстрирует проблему.Почему PHP не видит строку запроса?
Я передавая URL строку запроса:
?qwerty=asdfg
В результате, я ожидаю его перечислить эти два PHP переменные:
_REQUEST["qwerty"] asdfg
_GET["qwerty"] asdfg
А также эта строка запроса :
_SERVER["QUERY_STRING"] qwerty=asdfg
Однако, это не работает. Ни одна из этих переменных, похоже, не установлена вообще.
Я использую lighttpd. Это может или не может быть связано с проблемой, но мой greengar.com-lighttpd.conf выглядит так, потому что я использую WordPress для большинства страниц домена:
### Generated by Elliot
### Wordpress: http://www.greengar.com
url.rewrite += (
"^/(wp-.+).*/?" => "$0",
"^/(blog/wp-.+).*/?" => "$0",
"^/(.*.php)" => "$0",
"^/(.*.pdf)" => "$0",
"^/(.*.png)" => "$0",
"^/(.*.html)" => "$0",
"^/(.*.ico)" => "$0",
"^/(.*.gif)" => "$0",
"^/(.*.txt)" => "$0",
"^/(images).*/?" => "$0",
"^/(sitemap.xml)" => "$0",
"^/(xmlrpc.php)" => "$0",
"^/(.+)/?$" => "/index.php/$1"
)
Опять же, я не точно знаю, связано ли это с проблемой.
Мой вопрос: почему PHP не видит строку запроса?
И как это исправить?
Вот нормальный phpinfo(), который успешно видит строку запроса. Это выполняется на другом сервере, на котором запущен Apache.
+1 по договоренности! : D – mauris
Я потратил пару часов на изучение регулярных выражений, чтобы я мог уверенно внести изменения, которые будут совпадать и пройти вдоль строки запроса. Здесь это: «^/(. *. Php) (\? (. *))?" => «$ 0», (замените строку 6 кода в моем вопросе) – Elliot
СООТНОШЕНИЕ: У меня возникла проблема с Apache; оказалось, что строка RewriteBase в .htaccess испортила это: вы не можете сказать 'RewriteBase/# comment' –