sourcecode

IIS에서 워드프레스 퍼머링크가 있나요?

copyscript 2023. 2. 7. 20:03
반응형

IIS에서 워드프레스 퍼머링크가 있나요?

Windows 7 IIS에서 WordPress를 사용하여 개발 중입니다.블로그 투고를 위해 WordPress에 이미지를 업로드하고 있습니다.웹 사이트에서는 이미지가 정상적으로 표시되지만 퍼멀링크를 활성화하면 이미지가 동작하지 않게 되어 향후 업로드 되는 이미지가 있으면 바로 에러가 반환됩니다.

HTTP Error 500.50 - URL Rewrite Module Error.
The page cannot be displayed because an internal server error has occurred.

왜 이런 일이 일어나는지 잘 모르겠어요. 여기 제 사진이 있습니다.web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="wordpress" patternSyntax="Wildcard">
          <match url="*" />
            <conditions>
              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
              <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

퍼멀링크를 끄고 디폴트를 사용하자 마자 이게 왜 그런지 아는 사람 있어요?

이미지의 문제는 권한의 문제였지만 원래 이미지 파일 또는 상위 폴더에 수동으로 설정하는 것만으로는 충분하지 않습니다.WordPress의 동작은 IUSR을 사용하여 원본 파일을 PHP.ini 파일에 정의된 임시 시스템 디렉토리에 쓰는 것입니다.이 임시 폴더에는 IIS_가 없습니다.IUSRS 권한으로 인해 Windows가 이 파일을 임시 폴더에서 최종 홈인 응용 프로그램의 업로드 폴더로 이동할 때 IIS_IUSRS에는 읽기 권한만 있으므로 파일의 상위 폴더에서 권한이 상속되지 않습니다.

이 문제를 해결하려면 두 가지 방법이 있습니다.

  1. IIS_를 제공하는 임시 폴더에 대한 권한을 변경합니다.IUSRS 쓰기/수정
  2. PHP.ini 파일의 temp 폴더의 경로를 IIS_가 있는 폴더로 변경합니다.IUSRS 쓰기/수정 권한.

이 문제에 대한 자세한 내용은 http://www.howyoudo.info/index.php/how-to-fix-windows-server-upload-file-inherit-permissions-error/에서 확인할 수 있습니다.

PHP.ini의 temp 폴더를 C:\inetpub\temp\uploads로 이동하고 권한도 부여했습니다.wp-admin에서 이미지를 업로드한 후 500.50 에러 발생 후 브라우저에서 이미지(원본, 크기 변경 없음)에 액세스할 수 있었습니다.

소스

Using Permalinks © WordPress Codex using using windows 、 Windows 에서의 변경 없는 Permalinks의 기타 옵션에는 조금 다른 web.config가 있습니다.

다른 사용자를 지원하기 위해 IIS의 권한으로 인해 이 문제가 발생하며 다음 수정 사항도 있습니다.

http://forums.iis.net/t/1159252.aspx

web.config 파일에서 RULE에 대해 다음 설명을 사용합니다.

  <rule name="Imported Rule 1" stopProcessing="true">
        <match url="^index\.php$" ignoreCase="false"/>
        <action type="None"/>
    </rule>

    <rule name="Redirect Image to HTTP" stopProcessing="true">
        <match url=".*\.(gif|jpg|jpeg|png|css|js)$" ignoreCase="true"/>
        <action type="Rewrite" url="{R:0}"/>
    </rule>

    <rule name="Imported Rule 2" stopProcessing="true">
        <match url="." ignoreCase="false"/>
        <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true"/>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true"/>
        </conditions>
        <action type="Rewrite" url="/index.php"/>
    </rule>

언급URL : https://stackoverflow.com/questions/4403514/wordpress-permalinks-on-iis

반응형