Wordpress постоянные ссылки на IIS?

Я использую WordPress для Windows 7 IIS для разработки. Я загружаю изображения в WordPress для публикации в блоге. Изображение отображается хорошо на веб-сайте, но как только я включу permalinks, изображения больше не работают, и любые загруженные в будущем изображения я вернусь к ошибке:

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>

Как только я отключу свои постоянные ссылки и использую по умолчанию, он работает, кто-нибудь знает, почему это может быть?

Ответ 1

Проблема с изображением была проблемой разрешения, но просто установила ее вручную на исходный файл изображения или родительскую папку неадекватны. поведение WordPress заключается в том, что он записывает исходный файл с помощью IUSR к временному системному каталогу, который определен в файле PHP.ini. Эта временная папка не имеет разрешений IIS_IUSRS, поэтому, когда Windows перемещает этот файл из папки temp в приложение загружать папку, ее конечный дом, IIS_IUSRS имеет только разрешения на чтение, поэтому разрешения не наследуются из родительской папки файла.

Чтобы исправить это, есть два решения.

  • Измените разрешения в папке temp, где IIS_IUSRS записывает/изменяет.
  • Измените путь к папке temp в файле PHP.ini в папку, у которой есть разрешение на запись/изменение IIS_IUSRS.

Вот хороший источник, детализирующий проблему: http://www.howyoudo.info/index.php/how-to-fix-windows-server-upload-file-inherit-permissions-error/

Я решил переместить временную папку в свой PHP.ini на C:\inetpub\temp\uploads, а также предоставить ему разрешения. После загрузки образ в wp-admin, я смог получить доступ к изображению (оригинал, а не изменение размера) из браузера с ошибкой 500.50.

Из источника

Ответ 3

Чтобы помочь другим пользователям, эта проблема связана с разрешениями в IIS, и исправление также находится здесь:

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

Ответ 4

используйте нижеприведенные ссылки в ПРАВИЛАХ в файле web.config.

  <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>