W3 Total Cache IIS минимизирует ошибку

Моя проблема

Я получаю сообщение об ошибке при попытке минимизировать URL-адреса с помощью плагина Wordpress W3 Total Cache с IIS.

W3 Total Cache error: Похоже, перезапись URL Minify не работает. Убедитесь, что конфигурация сервера позволяет.htaccess. К сожалению, минификация не будет работать без пользовательских правил перезаписи. Пожалуйста, обратитесь к администратору сервера за помощью. Также обратитесь к странице установки для правил для вашего сервера. Техническая информация

Файл.htaccess содержит правила для перезаписи URL http://myurl.com/: \ Web \ Public_Test2 / wp-content / cache / minify / 000000 / w3tc_rewrite_test. Если обрабатывается плагином, он возвращает сообщение "ОК". Плагин отправил запрос на адрес http://myurl.com/: \ Web \ Public_Test2 / wp-content / cache / minify / 000000 / w3tc_rewrite_test, но получил: Время соединения истекло после 2016 миллисекунд вместо ответа "ОК".

(примечание: я отредактировал имя домена для конфиденциальности). Я считаю, что URL довольно странный, если домен находится там, но я не знаю, как изменить проверяемый URL по умолчанию. Если он идет из основного каталога, то это действительно Web/Public_Test2/wp-content/cache/minify, но там нет папки 000000.

W3 Total Cache Рекомендации

Под вкладкой установки для плагина есть примечание для людей, не использующих apache:

В случае, когда Apache не используется, файл.htaccess, расположенный в корневом каталоге установки WordPress, wp-content / w3tc / pgcache /.htaccess и wp-content / w3tc / min /.htaccess содержит директивы, которые должны быть вручную создан для вашего веб-сервера программного обеспечения.

Однако папка w3tc не существует, есть только папка w3tc-config, в которой есть файл master.php и master-admin.php, нет.htaccess или вложенных папок. Я проверил папку кеша под wp-config и в любой подпапке нет.htaccess. Поэтому я не уверен, как изменить web.config или какие директивы.

Моя попытка

Я нашел где-то, предлагая добавить эти правила перезаписи в web.config, я добавил их, но это совсем не изменило ошибку:

<rule name="w3tc_rewrite_test" stopProcessing="true">
    <match url="^wp-content/cache/minify/000000/w3tc_rewrite_test" />
    <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1" logRewrittenUrl="true" />
</rule>
<rule name="w3tc-minify-test-file" stopProcessing="true">
    <match url="wp-content/cache/minify/(.+/[X]+\.css)$"  />
    <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?test_file={R:1}"  />
</rule>
<rule name="w3tc-minify-file" stopProcessing="true">
    <match url="wp-content/cache/minify/(.+\.(css|js))$"  />
    <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?file={R:1}"  />
</rule>

1 ответ

Я столкнулся с той же проблемой, и вот решение, которое работало для меня:

W3 Total Cache: версия 0.9.4.1

Wordpress: версия 4.5.2

IIS: версия 7.5

Сервер: Windows 2008 R2

Мой web.config имеет следующие правила:

<rewrite>
  <rules>
            <clear />
            <rule name="w3tc-minify-file" stopProcessing="true">
                <match url="wp-content/cache/minify/(.+\.(css|js))$" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?file={R:1}" />
            </rule>
            <rule name="wordpress" enabled="true" patternSyntax="Wildcard">
                <match url="*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <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>

Когда я поместил правило w3tc-minify-file под свое правило wordpress, оно не сработало, и я получил 404 ошибки во всех файлах minify, создаваемых W3TC.

Я использую ручной режим минимизации и просто объединяю свои CSS и JS файлы, и это прекрасно работает. Надеюсь, это поможет кому-то.

Шансы на работу с режимом автоматической минификации очень малы, поэтому я определенно рекомендую использовать ручной режим для наибольшего шанса на успех. У меня было 3 JS-файла и 2 CSS-файла, которые я не смог объединить / минифицировать, потому что они сломали мой сайт. Ручной режим дает вам максимальный контроль, поэтому тратьте немного времени на добавление каждого файла, пока не получите его как можно лучше.

Другие вопросы по тегам