2014-11-11 5 views
0

제목에서 알 수 있듯이 IIS 아래에 여러 블로그가 실행중인 Wordpress 다중 사이트 설치가 있습니다. 리디렉션을 "http"에서 "https"로 강제 전환해야하지만 그 중 일부는 강제로해야합니다. 블로그는 일반적으로 'www'가 있든 없든 도달 할 수 있습니다. 나는 단지 미키와 데이지 실행이 https를 준비 IIS에서 실행중인 여러 WordPress 블로그에 대해 http로 https를 리디렉션

  • mickey.it
  • donald.it
  • daisy.it

그 :의 내가 다음 블로그를한다고 가정 해 봅시다 web.cofig에 추가 할 조건부 재 작성 조건이 필요합니다.

내 web.config 파일에는 일반적인 Wordpress 다시 쓰기 규칙이 있으며 많지는 않습니다 :

<rules> 
    <rule name="WordPress Rule 1" stopProcessing="true"> 
     <match url="^index\.php$" ignoreCase="false" /> 
     <action type="None" /> 
    </rule> 
    <rule name="WordPress Rule 2" stopProcessing="true"> 
     <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" /> 
     <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" /> 
    </rule> 
    <rule name="WordPress Rule 3" stopProcessing="true"> 
     <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> 
     <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" /> 
    </rule> 
    <rule name="WordPress Rule 4" stopProcessing="true"> 
     <match url="^" ignoreCase="false" /> 
     <conditions logicalGrouping="MatchAny"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> 
     </conditions> 
     <action type="None" /> 
    </rule> 
    <rule name="WordPress Rule 5" stopProcessing="true"> 
     <match url="(^[_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" /> 
     <action type="Rewrite" url="{R:2}" /> 
    </rule> 
    <rule name="WordPress Rule 6" stopProcessing="true"> 
     <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" /> 
     <action type="Rewrite" url="{R:2}" /> 
    </rule> 
    <rule name="WordPress Rule 7" stopProcessing="true"> 
     <match url="." ignoreCase="false" /> 
     <action type="Rewrite" url="index.php" /> 
    </rule> 
    </rules> 

어디에서 적용 할 새 규칙 (기존 규칙을 어 기지 않도록)?

답변

0

url rewrite 모듈은 regex를 사용하기 때문에 이런 식으로 올바른 방향으로 갈 수 있습니다.

<rule name="HTTP to HTTPS" enabled="true" stopProcessing="true"> 
    <match url=".*(mickey.it|donald.it).*" /> 
    <conditions> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> 
</rule> 

여기 정규식을 더 좋아할 수도 있지만 가장 기본적인 의미로 유효해야합니다.

나는 그걸로 조금 놀았고 그걸로 작동하는 것 같았다. ...

+0

답을위한 tnx! 나는이 규칙을 top/botton에 적용 할까 신경 쓰지 않을 것인가? –

+0

나는 규칙을 맨 위에 넣었을 것이라고 생각합니다. 리디렉션을 시행하고 다른 URL 퍼머 링크 규칙을 처리하는 가장 좋은 방법 인 것 같습니다. –

+0

그건 나를 위해 작동하지 않는 것! 수동으로'http : // www.example.com'을 입력하면'https : // www.example.com'으로 리다이렉트하지 않고 대신'500 Error'를 얻습니다. 어떤 아이디어? :( – Ciwan