2011-01-07 6 views
3

프론트 로더를 사용하여 모든 요청을 처리하는 프로젝트에서 작업 중입니다 (domain.argp에서 domain.argp로 라우팅? req = args/go/here) 잘 작동했는지 ... 아니면 내가 말했듯이, 나는 생각했다. 나는 최근에 새로운 로거를 추가했다. 테스트를 위해 index.php에 테스트 로그 메시지를 두었다. 이 메시지는 페이지를 다시로드 할 때마다 로그 파일에 두 번 쓰여지고 많은 디버깅 후 .htaccess 파일로 인해 원인을 찾았습니다. 어떤 이유로 든 모든 요청에 ​​대해 index.php를 두 번로드합니다.mod_rewrite 규칙을 프론트로드하면 index.php가 두 번로드됩니다.

RewriteEngine On 
RewriteBase /site/beta/ #I added this after I discovered the bug 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^index\.php$ #This too. Doesn't work 
RewriteRule ^(.*)$ index.php?args=$1 [L] 

나는 또한 시도했다 : : 여기

내 htaccess로의

FallbackResource /site/beta/index.php 

어느 모두 작동하지 않습니다 (당신이로 이동하려고하면 Index.php는 그냥로드되지 않습니다 127.0.0.1/site/beta/admin/controls/ -하지만 /index.php로 가면 그대로 두 번 계속로드됩니다.

누구든지 나를 도울 수 있습니까? 저는 IRC에서 몇 시간을 보냈습니다. 아무도 제대로 작동하는 솔루션을 찾을 수 없었습니다. (위의 두 가지만 제안 된 것입니다)

답변

6

mod_rewrite 버그가 확실합니까? rewriteLogLevel (9)이 높은 RewriteLog 파일을 활성화하면 동일한 요청이 2 번 처리되는 것을 볼 수 있습니까?

나에게 '나를 똑같은 요청을 2 번 했어.'라고 생각할 때마다 다른 이상한 웹 버그가 있다고 생각합니다. 빈 IMG src 버그.

당신이 당신의 HTML 어딘가에있는 경우는

<IMG SRC=""> 

또는 CSS 중 하나에 (열심히 찾을 수) A :

url() 

그런 다음 당신은 그것을 가지고있다. HTTP 프로토콜은 빈 GET url (css의 이미지 또는 url()이 GET 암시 적 요청 임)을 원본 페이지를 렌더링하는 url과 동일한 URL로 호출해야한다는 것을 나타냅니다 (또한 POST 일 수도 있습니다). POST 요청으로 페이지를 가져옵니다).

하나의 요청에 mod_rewrite가 2 회 응답하는 이유는 거의 없습니다. Firebug 또는 LiveHTTP 요청으로 index.php 요청을 2 번 보내지 않는지 확인하십시오. 또는 telnet-mode HTTP 요청으로 서버를 직접 테스트하십시오. 단 하나의 요청 만 보내 게됩니다.

+0

정말 대단합니다. 고마워요. 내 헤더 (HTML 헤더) 생성자를 테스트하는 동안 밝혀졌지만 존재하지 않는 javascript 파일을로드하는 테스트 행을 추가했습니다. – Jon

+0

을 완료하고 favicon 요청도 확인하십시오. 부츠 레이서로 방향이 바뀌면 이상한 일이 일어날 수 있습니다. – regilero

0

이것은 브라우저가로드하려고 시도 할 수도 있습니다 (보이지 않는 경우 아파치 액세스 로그를 확인하지 않으면 보이게됩니다) favicon.ico. 내 사이트 루트 디렉토리에 하나 넣기 전까지 같은 문제가있었습니다. 나는이 문제가 초기 질문자를 위해 해결되었다는 것을 안다. 나는 같은 질문에 대한 답을 찾고있는 사람들을 위해 여기에 넣고있다.

관련 문제