2011-05-13 8 views
15

웹 사이트의 모든 페이지를 업데이트하여 바닥 글 및 머리글에 include를 사용하고 싶습니다. 그래서 많은 .html 페이지를 .php로 변경해야합니다.모든 .html 확장자를 .php로 리디렉션

그래서 나는 .html로 끝나는 모든 페이지를 같은 URL로 리디렉션하지만 .php로 끝나는 방법을 찾고 있습니다.

답변

29
RewriteEngine On 
RewriteRule ^(.*)\.html$ $1.php [L] 

당신은 그냥 재 수정 대신 리디렉션으로 수행하려면 [L]

+0

L 플래그가 다른 일부 규칙에 문제가있는 것처럼 RewriteRule^(. *) \. html $ $ 1.php [R]에갔습니다. 도와 주셔서 감사합니다! – Max

+3

L 플래그는 '중지'플래그를 방지합니다. 다음 규칙은 실행되지 않습니다. http://httpd.apache.org/docs/2.2/rewrite/flags.html – roberthuttinger

+1

Windows 8.1 및 XAMPP 1.8.3에서이 기능이 작동하지 않습니다. 나는 "RewriteRule^(. *) \. html $ /$1.php [L]"을 사용하여 끝냈다. 단지 $ 1.php 부분 앞에 /가 추가된다는 점에 유의하십시오. 건배. –

7

당신은 더 간단한 방법을하고 모든 HTML 파일을 가질 수 [L,R]에 의해 PHP 파일로 처리 당신의 .htaccess 구조에

AddHandler application/x-httpd-php .php .html 
+0

오리지널 방식이지만,이 솔루션이 약간의 오버 헤드를 추가한다는 사실을 언급해야한다. PHP가 어떤 요청 (심지어 정적 인 것)을 구문 분석하도록 강제하는 것이기 때문에 이것은 꽤 귀찮다. – Defrag

5

mod_rewrite에 다음 줄을 추가! 아파치의 httpd.conf 파일에서

RewriteEngine On 
RewriteRule ^(.+)\.html$ $1.php 
1

당신은

AddType application/x-httpd-php .html 

들이 사용자에게 제공하기 전에 .html 중에서 파일이 PHP 파서를 통해 갈 수 있도록 추가 할 수 있습니다. 이 지시문을 .htaccess 파일에 추가 할 수도 있습니다. 두 번째 방법은 호스트 설정 방법에 따라 작동하지 않을 수 있습니다.

-1

"Add * application/x-httpd-php .html"은 간단한 .html 페이지 유형이 PHP에 의해 사전 처리되도록합니다.

그러나 조던의 "AddHandler"보다 wewals의 "AddType"이 더 좋을지 설명 할 수 있는지 궁금합니다.

토론에 따르면 here 두 가지 모두 오버 헤드가 약간 다르고 잘 동작하는 것 같습니다.

검색 엔진 순위를 염두에두고, 정적 HTML 페이지를 PHP 플랫폼으로 변환하고 기존 * .html 링크를 "라이브"로 유지하는 최선의 선택은 무엇입니까?

감사합니다.

0

AddType 명령은 기존 html 파일을 PHP로 처리합니다. 기존 HTML 파일을 새 PHP 파일로 바꾸려면 원하는 내용을 다시 작성해야합니다.

관련 문제