2012-06-28 2 views
0

가능한 중복 : 나는 사용자가 페이지/파일을 방문하는 PHP 스크립트를 실행할 수있는 방법
.htaccess rewrite image file to php script사용자가 지정한 형식의 파일을 방문 할 때 PHP 스크립트를 실행

PHP 파일이 아닌가요?

예를 들어 .css 파일을 방문한 경우 PHP 코드에 액세스 할 수 있도록 PHP 코드를 실행할 수 있도록 만들 수 있습니까?

+0

처리기 스크립트를 구현하기 위해 Apache RewriteRule을 사용하십시오. – mario

답변

1

이 좀 더 단순한 방법이지만 PHP 파일로 CSS 파일을 구문 분석 할 수있는 서버는 CSS PHP 출력을 구성 할 수 있습니다 : 당신이 아파치를 사용하는 경우

따라서는, 당신은 같은 것을 할 줄을 이 :

AddType application/x-httpd-php .css 

그런 다음 CSS 파일에서 다음을 수행하십시오

<?php 
// Code to execute because user is accessing CSS file 

// Output CSS below here 
header("Content-type: text/css"); 
?> 
body { 
} 
+0

이 기능을 사용하기 전에 사용자가 직접 파일을 보내지 않으면 css 파일을 저장하고 다운로드 할 수 있습니까? – maxhud

+1

예 그들은 파일을 저장할 수 있습니다. – nickb

+0

그리고 그것은 PHP 파일이 아닌 CSS 파일이 될 것입니까? – maxhud

0

을하는 대신 비 PHP 파일에 핸들러를 추가하는 아파치가 산도로 구문 분석을 시도 할 것이라는 점을 의미하는 p와는 다음 작업을 수행 할 수 있습니다 (예 : <?xml?> 선언이 XML 파일) 오류를 찾을 수

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L]  # if URI is not index 
    RewriteCond %{REQUEST_FILENAME} !-f # and URI is not file on disk 
    RewriteCond %{REQUEST_FILENAME} !-d # and URI is not directory on disk 
    RewriteRule . /index.php [L]   # redirect to index 
</IfModule> 

리디렉션 모든 트래픽이 존재하지 않는 URI에 대한 귀하의 주 응용 프로그램 부트 스트랩 보통 index.php에.

그리고 리디렉션 될 특정 (일련의) 파일에 대해서만 규칙을 추가하여 위의 내용을 적용하십시오. 리디렉션 한 후 $ _SERVER [ 'REQUEST_URI']를 확인하고 요청이 원래 어디에서 왔는지 확인하고 css 파일 인 경우 파일을 열어 읽은 다음 프로세스 된 내용을 사용자에게 표시합니다.

이 방법은 파일이 다운로드되지 않도록 보호합니다.

+0

CSS, HTML, JavaScript 및 이미지 파일 만 처리합니다. 여전히 적용됩니까? – maxhud

+0

모든 HTML/CSS/JavaScript 파일이 PHP 로직을 갖기를 원한다면 Apache가 모든 HTML/CSS/JavaScript를 PHP로 시도하고 실행하지 않게하려면 'AddType'이있는 다른 솔루션이 더 쉽습니다. HTML/CSS/JavaScript 파일 중 일부가 PHP 로직을 사용하게 될 것이므로이 솔루션이 더 좋습니다. –

관련 문제