홈페이지 » 코딩 » 디자이너 및 개발자를위한 .htaccess에 대한 초보자 가이드

    디자이너 및 개발자를위한 .htaccess에 대한 초보자 가이드

    웹 서버를 사용자 정의하기위한 다양한 도구 중에서 .htaccess 구성 파일은 엄청난 자산입니다. 너는 할 수있다. 신속하게 문서 유형 재설정, 엔진 구문 분석, URL 리디렉션, 기타 많은 중요한 기능을 제공합니다. 매우 기술적이지 않은 웹 마스터는 자신의 .htaccess 파일 관리의 세부 사항에 들어 가지 않을 수 있습니다. 그러나 주제 자체는 매혹적이며 조사 할 가치가 있습니다..

    이 기사에서는 웹 마스터와 웹 개발자를위한보다 의미있는 개념을 제시하고자합니다. 누구든지 아파치 서버에서 자체 웹 사이트 실행하기 .htaccess 파일을 관리하는 방법을 확실히 이해하고 싶습니다. 그것 너무 많은 맞춤 기능 제공 그리고 그것 모든 웹 언어에서 작동 가능 PHP에서 루비로.

    이 게시물의 맨 아래에 몇 가지 외부 웹 응용 프로그램을 추가했습니다. 신참이 .htaccess 파일을 동적으로 생성 할 수 있도록 도와줍니다..

    .htaccess 파일을 사용해야하는 이유?

    이것은 훌륭한 질문이며 아마 우리는 대답으로 시작해야합니다. “.htaccess 파일이란 무엇입니까?”? 이것은 Apache 웹 서버에서 사용되는 매우 특별한 설정 파일입니다. .htaccess 파일은 웹 서버 다양한 형태의 정보를 표현하는 방법과 다양한 HTTP 요청 헤더를 처리하는 방법.

    정말로 그것은 분산 웹 서버 설정을 구성합니다. 하나의 물리적 서버는 각각 자신의 .htaccess 파일과 함께 50 개의 다른 웹 사이트를 보유 할 수 있습니다. 그렇지 않으면 불가능할 웹 마스터에게 많은 권한을 부여합니다. 그러나 왜 당신은 하나를 사용해야합니까??

    가장 큰 이유는 보안입니다. 너는 할 수있다. 특정 디렉토리를 잠그거나 암호로 보호. 이것은 약간의 보안을 원하는 개인 프로젝트 또는 새로운 컨텐츠 관리 시스템에 적합합니다. 그러나 404 웹 페이지를 특정 웹 페이지로 리디렉션하는 것과 같은 일반적인 작업도 있습니다.. 이 코드는 한 줄의 코드 만 사용합니다. 방문자가 누락 된 페이지에 반응하는 방식에 큰 영향을 줄 수 있습니다..

    사실, .htaccess 파일이 이해할만한 가치가 있다는 것을 다른 사람들에게 납득시키기는 어렵습니다. 일단 당신이 그것을 본다면, 당신은이 작은 설정 파일에서 오는 모든 가치를 인식 할 수 있습니다. 또한이 기사의 나머지 부분에서 웹 마스터에게 .htaccess 구성 관리 관점에서 통찰력있는 주제를 제시 할 수 있기를 바랍니다..

    액세스 허용 / 거부

    잠재적 인 스팸 방문자를 인식하고 귀하의 웹 사이트에 대한 액세스를 거부 할 수 있습니다. 이것은 약간 극단적 일 수 있지만, 한 사람 또는 한 그룹의 사람들이 귀하의 웹 사이트를 목표로 삼았다는 것을 알고 있다면 선택할 수있는 몇 가지 옵션이 있습니다. IP 주소로 방문자를 거절하거나 금지하는 도메인 추천을 선택할 수 있습니다..

    주문 허용, 거부 거부 255.0.0.0에서 거부 123.45.6. 모두 허용하다 

    이 샘플 코드는 시작하기에 완벽한 템플릿이므로 Htaccess Guide에서 복사되었습니다. 두 번째 IP 주소에 4 번째 정수가 누락되어 있습니다.. 이 코드 블록은 첫 번째 IP (255.0.0.0)와 모든 IP를 123.45.6.0-255 범위 내에서 타겟팅합니다., 다른 모든 트래픽을 허용하십시오. 웹 마스터는이 기술을 다른 기술처럼 자주 사용하지 않을 수도 있지만 이해하는 것은 도움이됩니다..

    디렉토리 목록 방지

    오픈 디렉토리가있는 때가있을 것입니다. 기본적으로 브라우징을 허용하도록 설정. 즉, 사용자는 이미지 폴더와 같은 내부 디렉토리 구조에 나열된 모든 파일을 볼 수 있습니다. 일부 웹 마스터는 디렉토리 목록을 허용하고 싶지 않으며 고맙게도 코드 스 니펫은 매우 쉽게 기억할 수 있습니다..

    옵션 - 인덱스 

    이 대답은 스택 오버플로를 통해 무수히 많은 시간을 보았으며, 기억하기 쉬운 가장 쉬운 .htaccess 규칙 중 하나 일 수 있습니다..

    실제로는 가능하다. 각 디렉토리 안에 여러 개의 .htaccess 파일을 만듭니다. 어쩌면 그들 중 하나는 암호로 보호되어 있지만 다른 암호로는 보호되지 않습니다. 그리고 당신은 여전히 옵션 - 인덱스 방문자가 귀하의 웹 사이트 / 이미지 / 폴더를 탐색 할 수 없습니다..

    비밀번호 보안

    암호로 디렉토리를 보호하는 것은 매우 일반적인 절차입니다. 웹 사이트에 중요한 관리 영역 및 기타 폴더 확보. 때로는 소수의 사람들에게만 액세스 권한을 부여하기를 원할 것입니다. 암호는 해커가 웹 사이트 관리 패널에 액세스하지 못하도록 방지하는 데 사용됩니다. 그러나 어느 쪽의 방법이라도 문제의 전체 개수에 대한 매우 강력한 해결책입니다.

    중요한 코드 스 니펫을 설명하는 암호 보호에 대한 편리한 안내서가 있습니다. 너는 ~해야한다. 사용자 이름 / 패스워드 크리 덴셜을 저장하는 패스워드 파일을 생성한다.. 아파치는 사용자가 액세스 권한을 부여 받아야하는지 확인하기 위해 입력 내용을 확인할 수 있습니다. 사용자 이름과 비밀번호 샘플을 생성하는 방법을 알아 두십시오..

    이 htpassword 생성기를 사용하여 시간을 절약 할 것을 권장합니다.. 구문은 항상 완벽하게 나오며 암호를 직접 암호화 할 필요가 없습니다.. 다른 좋은 옵션은 전체 디렉토리 목록을 암호로 보호하는 것입니다. CSS-Tricks 코드 스 니펫 갤러리에서이 예제를 볼 수 있습니다..

    AuthType Basic AuthName "이 영역은 암호로 보호되어 있습니다"AuthUserFile /full/path/to/.htpasswd 유효한 사용자 필요 
    WordPress에 대한 보안

    이 암호 보호 아이디어를 유용하게 사용하려면 실제 예를 표시하십시오. 더 복잡한 코드 스 니펫은 WordPress wp-login.php 파일에 액세스하는 사용자에 대해 강제로 사용자 인증. 아파치에서 원래의 소스를 찾을 수 있습니다.이 소스에는 수많은 다른 WordPress 보호 스 니펫이 있습니다..

     거부 주문, 모든 AuthName에 대한 거부 허용 "AskApache에 의해 보호됨"AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic 유효한 사용자 필요  

    이러한 .htaccess 규칙을 따르려면 관리 영역을 암호로 보호하는 것이 좋습니다. 일반적으로 wp-login.php 파일은 무차별 적으로 시스템에 강제적으로 들어가려고하는 사람들로부터 가장 많은 조회수를 얻습니다. 따라서 위의 샘플 코드조차도 충분한 추가 보안 이상 귀하의 워드 프레스 웹 사이트.

    HTTP URL 다시 쓰기 규칙

    URL 재 작성은 아마도 .htaccess 파일의 가장 일반적인 용도 중 하나 일 것입니다. WordPress 기본 설치 실제로 할 수 있습니다 관리 패널에서 바로 .htaccess 파일을 생성하십시오.. 이렇게하면 .php? p = 1 구조가없는 예쁜 URL을 만들 수 있습니다..

    에 대한 재 작성 예제를보고 싶습니다. 밑줄을 대시로 업데이트하는 방법 그것 때문에 가장 중요한 요소가 많이 포함되어 있습니다..

    옵션 + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! \. (html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor : 예] $ 2 $ 2 $ 3 $ 4 [E = uscor : 예] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- US $ RewriteRule (. *) $ (예 : $) US $ RewriteRule (. *) $ RewriteRule (예 : //d.com/$1 [R = 301, L] 

    다시 쓰기 엔진RewriteBase 가장 정확한 값으로 설정할 수 있습니다. 그러나 RewriteEngine이 작동하려면 다른 것이 필요합니다. mod_rewrite를 활성화하는 방법을 설명하는 온라인 가이드가 많이 있으며 호스팅 제공 업체도 도움이 될 수 있습니다..

    문법은 다음과 같은 패턴을 따른다. 다시 쓰기 규칙 상단에. 이 규칙은 HTTP 요청으로 전송되는 사례와 일치. 이것들은 RewriteRule에 의해 응답됩니다.이 경우에는 모든 것을 도메인으로 리디렉션합니다. d.com. [R = 301, L]과 같은 끝의 괄호는 중요한 재 작성 플래그로 불리지 만 고급 주제는 더 많이 있습니다.

    mod_rewrite 문법은 다소 혼란 스럽지만 두려워하지 마십시오! 스 니펫은 다른 예제에서 훨씬 쉽게 볼 수 있습니다..

    시작하기 전에 실제 URL을 사용하여 코드 샘플을 생성하는 데 도움이되는이 mod_rewrite webapp을 권장해야합니다. 이 도구는 구문에서 다양한 항목을 조회하여 다시 쓰기 규칙에서 실제로 수행 할 작업을 확인할 수 있기 때문에 훌륭한 도구입니다. 다음은 공부할 수있는 간단한 예제가있는 훌륭한 자습서입니다.

    RewriteRule ^ dir / ([0-9] +) /? $ /index.php?id=$1 [L] 

    한꺼번에 과부하를주지 마십시오. [0-9a-zA-Z] + 및 유사한 패턴으로 URL을 다시 작성하는 방법을 실제로 이해하기 시작하려면 3-4 개월이 걸렸습니다. 연습을 계속하고 시간이 지나면 상식적인 지식처럼이 물건을 얻을 것이라고 약속드립니다..

    웹 마스터 용 코드 스 니펫

    사용하기 쉬운 스 니펫을 좋아하며 웹 마스터를위한 적절한 .htaccess 코드 모음을 작성하려고합니다. 이러한 각각의 아이디어는 다른 코드 블록과 함께 자신의 .htaccess 파일에 잘 맞을 수 있습니다. 이 스 니펫 대부분은 웹 서버 환경에서 신속한 문제 또는 수정 사항 해결. 새로운 웹 마스터를위한 완벽한 Apache 설정을 온라인에서 시작하는 것으로 상상해보십시오..

    DirectoryIndex 설정

    DirectoryIndex 명령은 일반적으로 한 행에서 사용됩니다. 아파치에게 처음에 문서를 “본관” 문서. 기본적으로 이것은 index.html, index.php, index.asp 및 기타 색인 파일과 같은 대상 항목. 그러나 아래에 복사 한이 코드 스 니펫을 사용하면이 루트 문서를 원하는대로 만들 수 있습니다..

    DirectoryIndex index.html index.cgi index.php 

    문서의 순서는 가장 중요하게 시작해야하며 가장 중요한 순위로 이동해야합니다. 따라서 HTML 또는 CGI 파일이 없으면 폴백은로 이동합니다. index.php. 그리고이 파일의 이름을 지정할 수도 있습니다. home.php 또는 someotherfile.php 모든 유효한 구문입니다..

    Force WWW 또는 Non-WWW Subdomain

    지정하지 않으면 Google에서 웹 사이트 도메인의 두 버전 모두를 사용할 수 있습니다. www.domain.com 또는 단지 domain.com. 내 경험에 따르면, 이들 중 하나를 선택하고 유일한 선택으로 설정하십시오. .htaccess를 통해. 그러면 Google은 WWW 하위 도메인을 가리키는 일부 URL과 다른 URL을 가리키는 여러 URL을 색인 생성하지 않습니다..

    # 강제로 WWW 하위 도메인 RewriteEngine On RewriteCond % HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ http://www.domain.com/$1 [L, R = 301] # 하위 도메인 RewriteEngine On RewriteCond % HTTP_HOST! ^ domain.com $ [NC] RewriteRule ^ (. *) $ http://domain.com/$1 [L, R = 301] 

    이 코드 스 니펫은 CSS-Tricks 아카이브에서 제공되며 매우 편리한 솔루션을 제공합니다. 자신의 웹 사이트에 필요한 모든 것이되도록 도메인을 업데이트해야합니다. 그렇지 않으면 문제가있을 것이며 곧 알게 될 것입니다! 그러나 나는이 두 가지 옵션 중 하나를 강하게지지하며 새로운 웹 사이트를 시작한 후 내 작업 목록의 맨 위에 있습니다..

    미디어 파일 다운로드 강제 실행

    상당히 중요한 또 다른 스 니펫은 특정 미디어 유형을 브라우저에 표시되는 대신 다운로드. 즉시 다운로드 가능한 형식으로 제공 될 수있는 PDF 문서 및 MP3 오디오 파일을 생각할 수 있지만 어떻게해야합니까? 다운로드 할 수 있는지 확인하십시오.? 이 코드 스 니펫을 요약 한 Htaccess Guide에 게시 된 비슷한 기사를 발견했습니다..

    AddType 응용 프로그램 / 옥텟 스트림 .zip .mp3 .mp4 

    이 줄의 끝 부분에 더 많은 파일 형식을 자유롭게 포함 시키십시오. 옥텟 스트림 MIME 유형을 사용하는 모든 미디어 형식을 다운로드 할 수 있습니다. 이를 .htaccess를 통해 강제로 실행하는 것은 사람들이 브라우저에서 이러한 파일을 볼 수 없도록하는 매우 직접적인 경로입니다.

    사용자 정의 오류 문서

    마지막으로 마지막으로 추가하려는 부분은 사용자 정의 오류 문서의 전체 템플릿입니다. 일반적으로이 번호 코드는 서버 쪽에서 만 볼 수 있습니다. 그러나 익숙해야 할 오류 문서가 많이 있습니다. 몇 가지 예가있을 수 있습니다. 403/404 오류 그리고 301 리디렉션.

    이 오류 코드 템플릿 100에서 시작하여 위쪽으로 500 개의 오류로 이동합니다.. 분명히 이들 모두가 필요하지는 않습니다. 가장 일반적인 오류 만 필요하며 필요성을 느끼는 경우 약간의 모호한 발췌문이 필요할 수 있습니다..

    코드를 인식하지 못한다면 Wikipedia에서 더 잘 이해할 수 있습니다..

    ErrorDocument를 100 / 100_CONTINUE ErrorDocument를 101 / 101_SWITCHING_PROTOCOLS ErrorDocument를 102 / 102_PROCESSING ErrorDocument를 200 / 200_OK ErrorDocument를 201 / 201_CREATED ErrorDocument를 202 / 202_ACCEPTED ErrorDocument를 203 / 203_NON_AUTHORITATIVE ErrorDocument를 204 / 204_NO_CONTENT ErrorDocument를 205 / 205_RESET_CONTENT ErrorDocument를 206 / 206_PARTIAL_CONTENT ErrorDocument를 207 / 207_MULTI_STATUS ErrorDocument를 300 / 300_MULTIPLE_CHOICES에서 ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument를 302 / 302_MOVED_TEMPORARILY ErrorDocument를 303 / 303_SEE_OTHER ErrorDocument를 304 / 304_NOT_MODIFIED ErrorDocument를 305 / 305_USE_PROXY ErrorDocument를 307 / 307_TEMPORARY_REDIRECT ErrorDocument를 400 / 400_BAD_REQUEST ErrorDocument를 401 / 401_UNAUTHORIZED ErrorDocument를 402 / 402_PAYMENT_REQUIRED ErrorDocument를 403 / 403_FORBIDDEN ErrorDocument를 404 / 404_NOT_FOUND ErrorDocument를 405 / 405_METHOD_NOT_ALLOWED ErrorDocument를 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_ AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument를 409 / 409_CONFLICT ErrorDocument를 410 / 410_GONE ErrorDocument를 411 / 411_LENGTH_REQUIRED ErrorDocument를 412 / 412_PRECONDITION_FAILED ErrorDocument를 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument를 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument를 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument를 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument를 417 / 417_EXPECTATION_FAILED ErrorDocument를 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument를 423 / 423_LOCKED ErrorDocument를 424 / 424_FAILED_DEPENDENCY에서 ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument를 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument를 501 / 501_NOT_IMPLEMENTED ErrorDocument를 502 / 502_BAD_GATEWAY ErrorDocument를 503 / 503_SERVICE_UNAVAILABLE ErrorDocument를 504 / 504_GATEWAY_TIME_OUT ErrorDocument를 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument를 506 / 506_VARIANT_ALSO_VARIES ErrorDocument를 507 / 507_INSUFFICIENT_STORAGE ErrorDocument를 510 / 510_NOT_EXTENDED 
    온라인 .htaccess Webapps
    • Htaccess 빌더
    • .htaccess 리디렉션 생성기
    • .htaccessEditor - .htaccess 파일 만들기
    • GenerateIt.net에 의한 모드 재 작성기
    기타 유용한 자료
    • .htaccess Httpd 위키에서
    • 공식 Apache htaccess 문서
    • 아파치 블로그에 물어보세요 - Htaccess Archives
    • htaccess 및 mod_rewrite 궁극적 인 가이드
    • Mod_Rewrite 규칙에 대해 알고 싶었지만 물어보기가 두려웠습니다.

    마지막 생각들

    수많은 .htaccess 파일을 온라인으로 토론하는 온라인 리소스가 너무 많습니다. 내 연결된 기사와 웹 응용 프로그램은 시작하기에 좋은 곳입니다. 그러나 계속 새로운 아이디어를 연습하고 두려워하지 마십시오. 코드 스 니펫 테스트하기. 하는 한 너는 백업 파일을 가지고있다. 그러면 좋아하는 것을 테스트해볼 수 있으며 재미있는 학습 경험이됩니다..

    .htaccess 관리에 대한 다른 아이디어 나 제안 사항이 있으면 아래 게시 토론 영역에서 공유하십시오..