지식 Profitserver 서비스를 사용하기 위한 간단한 지침
본관 지식 .htaccess 파일 구성

.htaccess 파일 구성


이 글에서는 SEO를 강화하는 데 중요한 .htaccess 파일을 사용하는 기본 원칙을 살펴보겠습니다. 이 파일은 검색 엔진에서 페이지를 적절하게 인덱싱하도록 보장합니다. 리디렉션을 관리하고, 보안을 구성하고, 성능을 높이는 방법을 알아봅니다. 또한 이 파일을 독립적으로 구성하는 방법에 대한 팁을 제공합니다.

.htaccess가 필요한 이유

.htaccess 파일은 Apache 서버에서 웹 개발자를 위한 일종의 "원격 제어" 역할을 합니다. 다양한 매개변수를 조정하고 웹사이트의 동작을 관리하는 데 편리한 도구를 제공합니다. 서버의 주요 구성 파일에 직접 액세스할 수 없는 경우(예: 가상 호스팅의 경우 종종 그런 경우) .htaccess는 필요한 변경을 하는 데 유용한 도구가 됩니다.

Htaccess는 종종 사이트의 루트 폴더나 특별한 구성이 필요한 폴더에 있습니다. 예를 들어 WordPress를 사용하는 경우 Yoast SEO 플러그인을 통해 구성을 수행할 수 있습니다. 이는 다음 기사에서 설명했습니다. robots.txt 구성. 다른 경우에는 필요한 폴더로 가서 기존 .htaccess 파일을 편집하거나, 아직 생성되지 않았다면 파일을 생성하면 됩니다.

.htaccess 파일 구성

301 리다이렉트 htaccess

.htaccess 파일의 301 리디렉션은 웹사이트의 영구 리디렉션에 비유할 수 있습니다. 검색 엔진과 브라우저에 페이지가 이제 영구적으로 새 주소에 위치한다는 것을 알리고 북마크와 인덱싱을 업데이트할 것을 제안합니다. 이러한 리디렉션은 일반적으로 페이지가 이동되거나 삭제되어 검색 결과에서 순위를 유지하고 방문자를 새 위치로 리디렉션할 때 사용됩니다.

리디렉션을 활성화하려면 .htaccess 파일에서 해당 명령을 활성화해야 합니다.

RewriteEngine on

그 후, 가장 간단한 형태의 리디렉션을 구성할 수 있습니다.

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>

유사한 리디렉션을 사용하여 리디렉션영구 지시문은 다음과 같습니다.

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>

이것들은 구성하기 가장 쉬운 리디렉션 방법입니다. 다른, 더 고급 유형의 리디렉션을 사용하는 구성을 고려해 보겠습니다. mod_rewrite를 기준 치수:

<IfModule mod_rewrite.c>
RewriteEngine On
    
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]

# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
    
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>

임시 재배치를 나타내는 302 리다이렉트 .htaccess는 훨씬 덜 자주 발생합니다. 다음은 이러한 설정의 예입니다.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>

지시어 ErrorDocument

이 설정을 사용하면 사이트에서 HTTP 오류가 발생할 때 사용자에게 표시되는 내용을 제어할 수 있습니다. 표준 오류 메시지 대신, 방문자에게 더 많은 정보를 제공하고 무슨 일이 일어났는지 이해하는 데 도움이 되는 자체 페이지를 표시할 수 있습니다. 다음 구문을 따르기만 하면 됩니다.

ErrorDocument <error_code> <URL_page>

예를 들어,

ErrorDocument 404 /errors/not_found.html

~일 때를 의미합니다 404 오류가 발생하면 페이지 /오류/찾을 수 없음.html 열립니다. 절대 URL은 비슷하게 지정됩니다.

ErrorDocument 500 http://example.com/errors/server_error.html

이 예에서는 다음이 표시되는 것을 나타냅니다. 서버_오류.html 페이지에서 http://example.com/errors/ 의 경우 500 오류.

사이트 디렉토리에 대한 액세스 거부

.htaccess 파일에는 다음 명령이 있습니다. 모두에서 거부, 웹 서버의 특정 폴더나 파일에 대한 액세스를 거부하는 데 도움이 됩니다. 이는 사이트 방문자에게 개인 정보나 중요한 파일을 숨겨 데이터 보안을 보장하려는 경우 유용할 수 있습니다.

목록(사용 가능한 모든 디렉토리 보기)을 비활성화하려면 다음 줄을 추가해야 합니다.

Options -Indexes

특정 디렉토리에 대한 액세스를 차단하는 예는 다음과 같습니다.

<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>

마찬가지로 단일 파일에 대한 액세스를 거부할 수 있습니다.

<Files "file.php">
Order Deny,Allow
Deny from all
</Files>

또는 확장자에 따른 다양한 파일의 경우:

<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>

IP로 접근 차단

.htaccess 파일에서 IP로 접근 차단은 특정 IP 주소나 그룹에 대한 웹사이트 접근을 제한할 수 있는 방법입니다. 특정 사람이나 원치 않는 봇이 사이트나 특정 부분에 접근하는 것을 방지하려는 경우 유용할 수 있습니다.

단일 IP 주소를 차단하려면 다음 명령을 사용합니다.

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

여러 IP 주소를 차단하는 방법은 "에서 거부" 필요한 주소로 줄을 서세요.

다양한 IP 주소를 차단하려면:

Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24

특정 IP에만 액세스를 허용하려면 다음 코드를 추가하세요.

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

접근을 완전히 거부하려면 다음 지침을 사용하세요. 모두에서 거부, 마스크로 주소를 차단하려면 다음을 지정합니다. 11.22에서 거부.

어디에, 11.22 IP 주소입니다 마스크.

사용자 에이전트별 방문자 차단

.htaccess 파일에서 User-Agent로 사용자를 차단하는 것은 방문자가 사용하는 브라우저에 대한 정보를 기반으로 웹 서버에 액세스할 수 있는 사람을 제어하는 ​​방법입니다. User-Agent 문자열에는 사람이 서버와 상호 작용하는 데 사용하는 브라우저에 대한 데이터가 포함되어 있으며, 이 정보 덕분에 특정 사용자의 액세스를 제한할 수 있습니다.

사용자 에이전트로 차단하는 가장 일반적인 방법은 다음과 같습니다. mod_rewrite를:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>

이 예에서 :

  1. RewriteCond %{HTTP_USER_AGENT}는 사용자 에이전트 문자열을 확인하는 데 사용됩니다.
  2. ^Bot1, ^Bot2, ^Bot3은 차단하려는 User-Agent 문자열의 예입니다. NC 수정자는 비교가 대소문자를 구분하지 않아야 함을 나타냅니다.
  3. RewriteRule ^.*$ - [F,L]은 RewriteCond 조건 중 하나라도 충족되면 요청에 적용됩니다. 403 Forbidden 상태 코드(F)가 포함된 응답을 보내고 규칙(L) 처리를 중지합니다.

htaccess에서 캐싱하기

.htaccess 파일을 통해 캐싱을 구성하면 사용자에게 더 빠르게 로드되어 사이트 속도가 향상됩니다. 작동 방식은 다음과 같습니다. 이미지, CSS 스타일, JavaScript 스크립트와 같은 특정 파일은 첫 번째 로드 후 사용자의 브라우저 캐시에 저장됩니다. 이제 브라우저는 사용자가 페이지를 방문할 때마다 서버에서 다시 로드하는 대신 캐시에서 이러한 파일을 사용할 수 있습니다. 이렇게 하면 로딩 시간이 단축되고 사이트 성능이 향상됩니다.

예를 들어보자:

# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>

# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

반면, 자주 업데이트되는 리소스의 경우 캐싱을 비활성화해야 합니다.

# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>

사이트 성능 최적화

The 모드 디플레이트 mod_gzip Apache의 모듈은 서버가 사용자 기기에 보내는 정보를 압축하는 데 도움이 됩니다. 이렇게 하면 파일 크기가 작아지고, 페이지 로딩 속도가 빨라집니다. 그러나 이러한 모듈의 지원 및 구성은 서버에 따라 다를 수 있다는 점을 기억하는 것이 중요합니다.

사용 예 모드 디플레이트 기준 치수:

<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

mod_gzip:

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>

우리는 가장 일반적으로 사용되는 지시어에 대해 논의했습니다. 파일의 모든 기능에 대해 익숙해질 수 있습니다. 공식 문서.

.htaccess 파일의 기능을 확인하는 방법

사이트에서 .htaccess 파일이 작동하는지 확인하려면 다음 단계를 수행하세요.

  1. 의도적으로 .htaccess 파일을 오류로 변경합니다. 이에 대한 응답으로 서버는 오류를 제공해야 합니다. 이 방법은 파일의 작업이 일반적으로 서버에 적용되는지 여부를 보여줍니다.
  2. 변경한 특정 사항의 기능을 확인합니다. 예를 들어, 매개변수 중 하나를 약간 조정하고 변경 사항이 있는지 평가합니다.
  3. 변경 사항이 서버의 응답과 관련이 있는 경우 페이지의 상태 코드를 확인하세요. 이를 수행하는 방법은 이전에 문서에서 설명했습니다. HTTP 오류 코드: 서버 오류의 전체 목록.
  4. 서버 로그를 참조하세요. .htaccess 파일 작동과 관련된 모든 오류가 표시됩니다.
  5. 온라인 서비스나 도구를 사용하여 테스트를 실시합니다.

.htaccess 파일의 기능을 확인하려면 모든 단계를 한꺼번에 수행할 필요가 없다는 것을 이해하는 것이 중요합니다. 목록에서 가장 적합한 방법을 선택하여 사용하면 됩니다.

맺음말

.htaccess 파일을 구성하는 것은 Apache 서버를 최적화하고 보호하는 데 중요한 단계입니다. 이 파일이 리디렉션을 관리하고, 콘텐츠를 압축하고, 보안을 보장하는 데 어떻게 도움이 되는지 살펴보았습니다. .htaccess 작업을 마스터하면 웹사이트의 성능과 기능을 개선하는 강력한 도구를 얻게 됩니다.

❮ 이전 기사 FTP 서버 설정
다음 기사 ❯ Linux에서 웹 서버(Apache-PHP-MySQL/MariaDB)를 구성하는 방법

VPS에 대해 문의하세요

저희는 언제든지 여러분의 질문에 답변할 준비가 되어 있습니다.