Wordpress постоянные ссылки на IIS? - PullRequest
10 голосов
/ 10 декабря 2010

Я использую WordPress на Windows 7 IIS для разработки.Я загружаю изображения в 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>

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

Ответы [ 4 ]

13 голосов
/ 14 июня 2012

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

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

  1. Измените разрешения для временной папки, предоставив IIS_IUSRS запись / изменение.
  2. Измените путь к временной папке вфайл 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.

Из источника

1 голос
/ 30 марта 2011

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

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

1 голос
/ 10 декабря 2010

Там немного другой web.config на Использование постоянных ссылок «WordPress Codex , а также другие параметры постоянных ссылок без перезаписи модов в Windows.

0 голосов
/ 13 июля 2017

используйте нижеуказанные ПРАВИЛА в вашем файле 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...