2009-10-17 10 views
3

phpinfo()은 문제를 보여줍니다.PHP가 내 쿼리 문자열을 보지 못하는 이유는 무엇입니까?

내가 쿼리 문자열의 URL을 전달 해요 :

_REQUEST["qwerty"] asdfg 
_GET["qwerty"] asdfg 

또한이 쿼리 문자열 : 결과

?qwerty=asdfg 

, 나는이 두 PHP 변수를 목록에 기대 해요 :

_SERVER["QUERY_STRING"] qwerty=asdfg 

그러나 작동하지 않습니다. 이 변수들은 전혀 설정되어 있지 않습니다.

나는 lighttpd를 사용하고 있습니다. 이것은 또는 문제와 관련,하지만 난 도메인의 페이지의 대부분을 워드 프레스를 사용하고 있기 때문에 내 greengar.com-lighttpd.conf가가, 다음과 같습니다되지 않을 수 있습니다 다시

### 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를 실행중인 다른 서버에서 실행 중입니다. 하단에서

답변

12

http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModRewrite

:

"당신은 당신이 명시 적으로 일치 할 필요가 재 작성 대상으로 쿼리 문자열 (foo는 = 바?)를 통과 싶다면"

그리고 대안 $ _SERVER [ 'REQUEST_URI']를 통해 읽는 것입니다.

+0

+1 동의! : D – mauris

+0

나는 정규 표현식을 배우는 데 몇 시간을 보냈다. 그래서 나는 쿼리 문자열과 일치하고 전달할 변경을 자신있게 할 수 있었다. 여기 있습니다 : "^/(. *. php) (\? (. *))?" => "$ 0", (내 질문에 코드의 6 번 줄 바꾸기) – Elliot

+0

관련 : 아파치에이 문제가있었습니다. .htaccess의 RewriteBase 행이 엉망이되어 버렸습니다.'RewriteBase/# comment'를 말할 수 없습니다. –

0

그냥 확인하지만 $ _SERVER [ "QUERY_STRING"] 여야합니다. 실제 코드에 $?

+0

예, 그렇습니다. 나는 phpinfo()가 그것을 버리기 때문에 질문에서 $를 생략했다. – Elliot

관련 문제