index.html을 사용하는 올바른 방법


9

귀하의 의견을 듣고 싶은 문제가 많이 있으므로 충분히 설명해 드리겠습니다. 또한 HTML과 CSS에 대한 지식 만 갖춘 초보자이므로 강력한 PHP를 사용하는 간단한 솔루션이 거의 확실하지만 도움이되지 않습니다 .

의 내가 주소에 내 개인 블로그를한다고 가정 해 봅시다 example.com/blog.html거기에 여러 개의 하위 블로그에 대한 링크 example.com/blog/math.html, example.com/blog/coding.html등 내 루트 폴더에 포함 된 그래서 blog.htmlblog폴더는 blog폴더 자체가 파일을 포함 math.html하고 coding.html.

우선, 내가 배운 (에서 구글 웹 마스터 도구 )이 SEO와 미적 목적을 통일 그것의 좋은을 위해 example.com.comexample.com/index.html추가하여 _rel="canonical"_의 소스로 속성을 index.html. 에 링크 ../와 같은 몇 가지 다른 트릭을 사용하여 웹 주소에 나타나는 ./추악한 부분을 제거했습니다 index.html.

이제이 트릭을 루트 폴더뿐만 아니라 모든 폴더에 사용할 수 있는지 궁금 합니다. 내 폴더 blog.html로 이동하고 로 blog이름을 바꾸고 통합 하여 index.html추가 rel="canonical"합니다 . 이 트릭은 내 블로그 주소를에서 (으) 로 변경합니다 .example.com/blog/index.htmlexample.com/blog/
example.com/blog.htmlexample.com/blog/

완료되지 않았습니다! 폴더를 인덱싱하는 Google 로봇에 문제가 있습니다. 따라서 site:example.com/Google 검색에 입력 하면 example.com/blog/원시 파일, 아이콘 등이있는 내 폴더에 대한 링크가 다른 결과 중에서 나타납니다. 다른 방법으로 문제를 해결할 수도 있지만 위에서 언급 한 변경 사항으로도 트릭을 수행 할 수 있습니다 . 블로그 폴더 의 index.html 은 사용자가 해당 폴더의 실제 원시 내용을 볼 수 없도록 유지합니다. example.com/blog/Google 검색 의 올바른 링크 와 검색 결과에 _rel="canonical"_원하지 않는 두 번째 링크 example.com/blog/index.html가 나타나지 않도록하십시오.

그래서 내 질문은 :

  1. index.html모든 하위 폴더에 파일 을 두는 것이 좋은 방법 입니까, 아니면 루트 폴더에만있는 것입니까?
  2. 두 번째 " 모든 폴더의 색인 "방법을 사용할 때 발생할 수있는 단점이나 문제점이 있습니까?
  3. 어느 것 웹 사이트는 위에서 설명한 구조의 두 가지 방법 중 하나를 당신이 좋아?

설명을 위해 검색 엔진이 site.com/blogsite.com/blog/index.html 을 2 개의 별개의 파일로 보나요? 두 URL이있는 링크를 사용하는 경우 두 위치간에 링크 주스 / 페이지 권한을 분할 할 가능성이 있습니까?

내가 아는 한, 검색 엔진 (적어도 Google)은 두 개의 별개의 파일로 인식합니다. 그것들은 실제로 구별 될 수 있기 때문에-두 개의 링크는 하나의 슬래시에서만 다를 수 있습니다. (자세한 내용은 여기를 참조 하십시오 .) 네, 한 페이지에 대해 서로 다른 두 개의 링크를 사용하는 경우 페이지의 전체 순위가 두 링크로 분할되어 페이지의 순위가 절반으로 떨어집니다. 이것이 내가 유출을 막기 위해 언급 된 링크 표준화를 제안하는 이유입니다.
Jeyekomon 2016 년

답변:


13

우리 가 웹 서버 소프트웨어를 사용 index.html하거나 home.html파생시키는 이유는 웹 서버 소프트웨어 자체가 실제로 그것을 찾아서 제공하기 때문입니다. 예를 들면 다음과 같습니다.

이것은 유효하지 않습니다 : (www-directory)

/var/www/
|_blog.html
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

이것은 실제로 폴더와 파일을 나열하는 페이지로 제공됩니다. (원하는 것이 아님). 이 구조를 시도 할 수 있지만 blog.html 옆에 index.html 파일을 만들 수도 있습니다. 을 지정하지 않으면 blog.html을 제공하지 않는 방법에 주목하십시오. http://www.site.com/blog.html) 따라서 지정 http://www.google.com/하지 않아도 페이지 가 표시됩니다.http://www.google.com/index.html

유효합니다 :

/var/www/
|_index.html (renamed blog.html to index.html)
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

이것은 귀하의 blog.html파일을 홈 페이지로 제공합니다 . (해당 디렉토리의 모든 폴더 / 파일을 나열하지는 않습니다)

웹 서버 소프트웨어에는 구성의 특정 파일 이름 목록이 있으며이 파일 이름은 홈페이지 또는 폴더의 기본 페이지로 제공됩니다. (내 경험에 의하면, index.html당신이 그렇다면, index.php를보다 우선 index.html하고 index.php모든 변경 될 수 물론 폴더에서 index.html을 대중이 볼 것입니다), 그리고 심지어 설정할 수 있습니다 blog.html로 인식 "인덱스".

귀하의 의견을 말하십시오 :

"이 트릭은 내 블로그 주소를 www.xxx.com/blog.html에서 www.xxx.com/blog/로 변경합니다."

이것은 blog.html전체로 이동 /blog/하여 index.html로 이름을 바꾸면됩니다.

새로운 구조는 다음과 같습니다.

/var/www/
|_blog/
  |_index.html (renamed from blog.html)
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

이것은 http://www.site.com/blog/우리가 이름을 바꾼 blog.html의 내용을 index.html소프트웨어가 디렉토리의 색인으로 설정할 수 있도록 올바르게 제공해야합니다./blog/

당신은 또한 당신이 원하는 곳으로 연결되는 링크를 갖기 index.html위해 사이트의 루트에 넣고 제출할 수 있습니다 .http://www.site.com/(index.html)/blog/

짧은 문장으로 질문에 구체적으로 답변하십시오.

  1. 모든 하위 폴더에 index.html 파일을 두는 것이 좋은 방법입니까, 아니면 루트 폴더에만있는 것입니까?

    예, 사람들이 디렉토리에있는 파일을 보지 못하기 때문입니다. 당신은 이것을 .htaccess포함 하는 파일로 막을 수 있습니다Options -Indexes

  2. 두 번째 "모든 폴더의 색인"방법을 사용할 때 발생할 수있는 단점이나 문제점이 있습니까?

    내가 생각할 수있는 것은 없습니다.

  3. 위에서 설명한 웹 사이트를 구성하는 두 가지 방법 중 어느 것을 원하십니까?

    나는 보통이 index.htmlindex.php, 루트 (예 : 카테고리에 따라 하위 폴더에 파일을 forum하거나 news또는 login다음 등) 및 그 각각의 내부 인덱스의 일종.


이러한 포괄적 인 답변에 감사드립니다! 내 폴더에 대한 공개 액세스 권한과 Google에서 색인을 생성한다는 사실 때문에 "모든 폴더의 색인"트릭에 문제가 없음을 알게되면 웹 사이트를 이런 식으로 변경합니다. rel = "canonical"트릭이 작동하고 모든 색인이 Google 검색에 나타나지
않기를 바랍니다

6

index.html의 기술 용어는 Apache의 디렉토리 색인 및 IIS의 기본 문서입니다. 관심있는 다른 Apache 지시문은 Options 지시문입니다. 설명서에 표시된대로 Options Indexes설정시 :

디렉토리에 매핑되는 URL이 요청되고 해당 디렉토리에 DirectoryIndex (예 : index.html)가 없으면 mod_autoindex는 형식화 된 디렉토리 목록을 반환합니다.

컨텐츠 관리 시스템을 사용하지 않는 웹 사이트를 설정할 때 선호하는 설정은 디렉토리 당 하나의 컨텐츠 페이지를 갖는 것입니다. 해당 페이지는 디렉토리의 디렉토리 색인 (기본 문서)입니다. 사이트의 모든 링크는 디렉토리에만 연결되며 후행 슬래시 (예 : http://example.com/blog/대신 http://example.com/blog/index.html또는 ./blog/대신 ./blog/index.html)로 끝납니다 . 후행 슬래시는 일반적으로 무료 리디렉션 이라고하는 것을 피하기 위해 중요합니다 . 후행 슬래시를 생략하면 모든 것이 여전히 올바르게 해결되지만 HTTP 요청 수와 대역폭이 증가합니다.

위의 방법론에 대한 나의 주요 동기는 두 가지입니다. 먼저 웹 사이트에서 사용되는 기술을 쉽게 전환 할 수 있습니다. 예를 들어 링크 나 검색 엔진 목록을 손상시키지 않고 페이지를 index.html에서 index.php로 변경할 수 있습니다. 둘째, 컨텐츠 페이지의 파일 확장자는 "노이즈"입니다. URL에서 파일 확장자를 제거하면 URL이 더 짧고 읽기 쉽습니다.

다른 파일 형식은 다음과 같습니다.

  • 모든 CSS 파일은 웹 사이트 루트의 css 디렉토리에 있습니다.
  • 모든 이미지 파일은 웹 사이트의 루트에있는 이미지 디렉토리 또는 하위 디렉토리에 있습니다.
  • 모든 JavaScript 파일은 웹 사이트 루트의 scripts 디렉토리에 있습니다.
  • 모든 플래시 및 기타 동영상 파일은 웹 사이트 루트의 비디오 디렉토리 또는 그 하위 디렉토리에 있습니다.

Apache 서버 Options Indexes에서 위에서 언급 한 디렉토리를 비활성화 합니다. Apache와 IIS 서버 모두에서 위에서 언급 한 디렉토리에 대한 디렉토리 색인 (기본 문서)을 지정하지 않습니다. 따라서 모든 디렉토리에 대한 요청으로 HTTP 403 오류가 발생합니다.


두 개의 링크 제한 제한으로 인해 답변에 디렉토리 색인기본 문서 에 대한 링크를 포함시킬 수 없으므로 여기에 있습니다.
Ryan Prechel 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.