2011-04-26 4 views
2

안녕하세요, 저는 PHP Windows Azure 프로젝트가 있지만 IIS를 처음 사용합니다. 나는 document_root라는 하위 폴더에 index.php, 스타일 시트 또는 자바 스크립트와 같은 루트 폴더 및 클라이언트 파일에 내 PHP 라이브러리를 가지고 있습니다.하위 폴더에 IIS 문서 루트

아마도 mydomain.tld/document_root 대신 mydomain.tld를 호출 할 수 있도록 document_root를 사이트의 기본 폴더로 사용하여 (보이지 않는 루트를 만들기 위해) IIS 7 (아마 Web.config를 사용)을 설정할 수 있습니까?/

내가 사용하고 있습니다 : 잘 작동

<defaultDocument> 
    <files> 
    <clear /> 
    <add value="document_root/index.php" /> 
    </files> 
</defaultDocument> 

을하지만 그것은 단지 index.php에 액세스하고 캔트 /document_root/css/default.css 같은 파일을 찾을 수 (상대 주소는 CSS/기본값입니다. CSS)

답변

2

두 가지 방법이 있습니다. 쉬운 방법은 IIS7에 포함 된 URL 다시 쓰기 모듈을 사용하는 것입니다. 예는 공용 폴더에 대한 요청을 리디렉션 (및 해당 폴더에 직접 액세스를 허용 일) :

<system.webServer> 
    <rewrite> 
     <rules> 
      <clear /> 
      <rule name="blockAccessToPublic" patternSyntax="Wildcard" stopProcessing="true"> 
       <match url="*" /> 
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
        <add input="{URL}" pattern="/public/*" /> 
       </conditions> 
       <action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission to view this directory or page using the credentials that you supplied." /> 
      </rule> 
      <rule name="RewriteRequestsToPublic" stopProcessing="true"> 
       <match url="^(.*)$" /> 
       <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
       </conditions> 
       <action type="Rewrite" url="public/{R:0}" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

다른 방법은 PHP 애플리케이션이 배포되면 IIS 설정을 변경하는 것입니다. 이를 수행하려면 웹 역할의 OnStart 메소드를 재정의해야하지만, 첫 번째 솔루션이 사용자의 요구에 맞을 것이라고 생각합니다.

0

나는 다른 각도에서 이걸 보게된다. (litt 르 PHP하지만 IIS와 Azure 잘). 귀하의 프로젝트가 왜 그렇게 구성되어 있는지 모르겠으므로 어떤 이유로 든 이 있다고 가정합니다. 내 경험에 비추어 볼 때 루트로 사용하기를 원할뿐만 아니라 루트에서 사용하기를 원하는 하위 폴더를 갖는 것은 다소 비 전형적인 것입니다.

내가보기에는, 재 작성 또는 라우팅이라고하는 기술을 URL에서 구문 분석하고 실행 페이지로 전달하는 방식을 표준에서 변경할 수 있습니다. Stackoverflow에는 트롤링하기를 좋아할만한 게시물이 많이 있습니다. IIS URL Rewriting vs URL Routing은 두 가지 유형의 라우팅과 어디에서 사용할 것인지 대답을 제공합니다.

web.config에서이 작업을 수행 할 수 있으므로 원하는 작업을 수행 할 수 있습니다.

0

기본 설정 및 웹 사이트 바인딩을 수정하십시오. 당신은 하나 개의 웹 사이트가있는 경우, 당신은 아마 그냥 DEFAULT 웹 사이트에 대한 기본 SETTINCGS을 편집 할 것

  1. IIS 관리자를 열고 작업에서 기본 웹 사이트
  2. 클릭 (오른쪽), 기본 설정 선택
  3. 물리적 위치 편집.

다른 개발 도구 (여러 "DOCUMENT_ROOT"폴더가 있음)에서 여러 웹 사이트를 테스트하는 경우 목록의 각 웹 사이트를 마우스 오른쪽 단추로 클릭하고 바인딩 편집을 클릭 한 다음 여러 웹 사이트를 다른 포트 번호로 실행하도록 설정합니다. 그런 다음 (예를 들어) 다음을 사용하여 다양한 웹 사이트에 액세스 할 수 있습니다. http-colon-slash localhost : 81

관련 문제