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.
Из источника
Ответ 2
Там немного другой web.config в Использование Permalinks" WordPress Codex, а также другие параметры для Permalinks без перезаписи мод в Windows.
Ответ 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>