2011-08-28 5 views
0

로더에 문제 :PHP/htaccess로 - 나는 특정 파일에 페이지의 모든 요청 리디렉션 루트에 htaccess로 파일이

RewriteCond %{REQUEST_URI} !^/loader.php(.*)?$ [NC] 
RewriteRule ^(.*)$   /loader.php?url=$1 [QSA,L] 

지금 리디렉션은 loader.php

include($_SERVER['DOCUMENT_ROOT'] . '/' . $_GET['url']); 
에서 쉽게

예를 들어 URL은 admin/index.php입니다.

코드를 그대로두면 로더가 파일을 포함하고 올바른 HTML을 인쇄하지만 CSS 또는 JS 스크립트가로드되지 않습니다. 포함하기 바로 앞에 echo "test"; 을 입력하면 로더가 CSS 파일을로드합니다. 그것은 나를 죽이는 무언가이다. HTTP 헤더에 무엇인가를 지정해야합니까?

는 이미 어떤 결과 하지만 크롬과 내가 페이지를 검사하면 내가 올바른 CSS를 볼 수 있습니다 링크를 클릭 또 다른 이상한 것은이 함께 index.php의 헤더에 <base url="" /> 퍼팅 시도했다. 1


업데이트 나는 headers_list(); 인쇄. 한 가지 알아 차 렸습니다 - headers_listecho을 인쇄하면 배열에 내용 유형이 표시되므로 header() 기능을 사용하여 직접 추가하려했지만 아무런 결과가 없습니다. 아직도 그것에 종사하고있어.


업데이트 2

나는 다른 일을 나타났습니다; <style></style> 태그를 CSS와 함께 넣으면 제대로 작동하지만, <link /> 태그를 사용하면 그렇지 않습니다. 이것은 의미가 없습니다.

+0

으로 변경하십시오. CSS 또는 JS를 포함시킬 때 페이지의 출력을 표시 할 수 있습니까? –

답변

2

css 및 javascript (및 이미지 등)에 올바른 MIME 헤더를 보내야합니다. 가장 쉬운 방법은 아파치가 이러한 요청을 처리하도록하는 것입니다. 모든 CSS, JS 및 이미지를 'assets'라는 이름의 폴더에 넣고 htaccess를

RewriteCond %{REQUEST_URI} !^/assets/ 
RewriteCond %{REQUEST_URI} !^/loader.php(.*)?$ [NC] 
RewriteRule ^(.*)$   /loader.php?url=$1 [QSA,L] 
+0

감사합니다! 그것은 아주 좋은 시작입니다 ... 파일을 열면 몇 가지 문제가 stil 폴더 안에, 거기에 CSS, js, 이미지를 넣어 자산 폴더를 만들거야하지만 이상하게 오직 CSS가 작동하지 않습니다 .... 어떤 생각? 루트 안에있는 모든 폴더에 대해 몇 가지 재기록을해야합니까? – Aliceiw

+0

제 생각에는 CSS와 관련된 다른 문제가 있습니다. 브라우저에서 css의 URL을 열어 오류가 있는지 확인하십시오. – Gerben