2011-12-19 2 views
3

웹 사이트는 .php이지만 "mod rewrite"을 사용하여 .html으로 변환했습니다. .htaccess에 사용되는 모드 재 작성 코드는 문제가 내 웹 사이트가 .php.html 모두에 표시 지금 .php url to .html url

RewriteEngine on 
RewriteRule ^(.*)\.html$ $1.php 

입니다.

예 : www.mydomain.com/index.htmlwww.mydomain.com/index.php.

내 지식에 따르면 서재응 목적에 좋지 않으며 또한 검색 엔진에 중복 콘텐츠가 될 수 있습니다.

그래서 나는 .html [not .php] URL을 검색 엔진 및 사용자에게만 공개하고 싶습니다.

어떻게 수행하나요?

답변

0

.php 파일의 이름을 .html로 바꾸고 RewriteEngine 규칙을 삭제할 수 없습니까? PHP는 여전히 모두 예상대로 실행되어야합니다.

+0

에만 작동이 명령을 순종 – Criss

+0

왜이 방법은 사용하지 않는 것이 좋습니다? 그래서 PHP가 무엇이고 무엇이 그렇지 않은지에 대한 명확한 정의를 유지하기 위해서? –

+1

* .html 업로드를 허용하도록 스크립트를 구성한 경우 (일반적으로 문제 없음), 파일을 열면 파싱됩니다. 문제는 검증이나 무언가없이 이제 임의의 PHP 코드를 사용할 수 있다는 것입니다. – Criss

6

UPDATE incoorperated 의견 (감사들)

는 다른 규칙 전에 * .html 중에서 파일에 대한 모든 * .PHP 리디렉션 다른 재 작성 규칙을 추가합니다. 그런 일 :

처리하는 모든 것들 (L 플래그) (R 플래그) 영구 리디렉션 (301)와 HTML로 모든 PHP 파일을 리디렉션 및 중지
RewriteRule ^(.*).php$ $1.html [R=301,QSA,L] 

. 또한 모든 쿼리 매개 변수 (QSA 플래그)를 전달합니다.

+0

당신은 백 슬래시를 잊어 버렸고 포워딩 (QSA)에서 쿼리 매개 변수를 유지하도록 요청했습니다 : **'RewriteRule^(. *) \. php $ $ 1.html [R = 301, QSA, L] ** –

+0

고마워, 게시물과 내 자신의 규칙을 업데이 트 :) – Criss

+0

"남자 ** s **"? 나는 여기있는 유일한 사람이다! =) –

0

가장 쉬운 방법은 robots.txt에서 ".php"를 거부하는 것입니다.

User-Agent: * 
Disallow: *.php 

모든 적절한 거미 (권장하지 않음) PHP는 * .html 중에서 파일을 구문 분석하는 설정 인 경우

+0

문제는 스파이더가 이미 사이트를 크롤링했을 수 있습니다. 그래서 그들이 페이지를 크롤링하는 시간은 어떻게됩니까? 사이트를 삭제하거나 색인에 남겨 두십시오. 301 리디렉션 (영구적으로 이동)이 더 좋습니다. – Criss

+1

그들은 다음에 방문하여 그에 따라 행동 할 때 robots.txt를로드합니다. 나는 방금 Google에서 여러 페이지를 제거하기 위해 이와 동일한 접근 방식을 사용했습니다. 간단하고 똑바로. – Dayo

+0

하지만 검색 결과에서 어떻게 도움이됩니까? 사용자를위한? 중복 콘텐츠 문제를 해결할 것인가? – sammrat23