2012-11-28 2 views
1

최근 내 웹 마스터 도구에서 임의의 사이트가 내 사이트로 연결되는 것을 보았습니다. 실제로 이것은 큰 문제가 아닙니다. 내 .htaccess 파일로 인해 연결된 페이지가 실제 페이지가 아닌 경우 문제가 발생합니다.정지 재 작성 htaccess 임의 페이지 생성

#Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L] 
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L] 

을 그래서 실제 URL은 다음과 같습니다 :

내가 실행하고있어 .htaccess 코드

mysite.com/folder/999/TITLE-OR-NAME 

그러나 나는 단지 숫자 ID가 1 폴더 $1을 확인하기 때문에 이 .htaccess 파일을 사용하면 해커가 다음과 같은 임의의 URL로 내 사이트에 연결할 수 있습니다.

mysite.com/folder/999/TITLE-OR-NAME1 
mysite.com/folder/999/TITLE-OR-NAME2 
mysite.com/folder/999/TITLE-OR-NAME3 
mysite.com/folder/999/TITLE-OR-NAME4 
mysite.com/folder/999/TITLE-OR-NAME5 

Google에서 콘텐츠를 복제한다고 나에게 말하면 최악의 부분이 발생합니다 !!!

실제로 콘텐츠를 복제하지 않기 때문에 .htaccess에서 복제하고 있습니다. 그리고 네, 저는 안좋은 초보자 프로그래머입니다.하지만 해결책을 찾기 위해 애를 쓰고 있지만 결코 작동하지 않기 때문에 정말로 도와 주셔서 감사합니다.

답변

0

당신이 조금 조정할해야 할 수도 있습니다하지만 당신은 가까이해야합니다 (L 그들은이 사건을 치면

RewriteRule ^([0-9]+)/([A-Za-z]*)([0-9]*)$ [R=404,L,NC] 
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L] 

= (404)는 말하고있다 R 404을 던져 더 이상 명령을 다시 execeute하지 않습니다). NC는 대소 문자를 구분하지 않습니다. 고정 URL의

EDITED을 : 이 각각의 고정 된 페이지로 이동하고 목록에없는 모든 그래서 그 다음 줄에, foo에 대해 확인합니다 즉 404로 이동합니다 그것은 결국 케이스를 돌 때까지 ; 유효하지 않은 url과 404가 있습니다.

RewriteRule ^([0-9]+)/(FOO){1}$ index.php?id=$2 [L] 
RewriteRule ^([0-9]+)/(BAR){1}$ index.php?id=$2 [L] 
... 
RewriteRule ^([0-9]+)/(.*)$ [R=404,L,NC] 
+0

사이드 노트로 저는 Google이 귀하의 사이트로의 나쁜 백 링크를 제거 할 수 있다고 믿습니다. – Shawn

+0

Answser Shawn에게 감사드립니다. 문제가되지 않았 음을 설명했기 때문에 작동하지 않습니다. 제목은 TITLE-OR-NAME1 또는 TITLE-OR-NAME2뿐 아니라 TITLE-NAME-GOOD 또는 TITLE-NAME-GOOD-GOOD 일 수 있으므로이 때문에 규칙이 작동하지 않습니다. – Vistol

+0

감사합니다 션 (Shawn)이지만 실제 솔루션을 찾고있는 사람 : – Vistol