WordPress 5.8 ist ein weiterer großer Schritt in Richtung Full Site Editing von WordPress. Damit schwindet auch die Grenze zwischen Widgets und Blöcken weiter. Das klassische Textwidget hat ausgedient und kann nun entweder durch das HTML- oder verfügbare Blöcke (z.B. Absätze) abgelöst werden.
Nach dem Update auf WordPress 5.8 in Entwicklungsumgebungen die bei mir unter IIS laufen konnten in Projekten mit individuellen komplexeren Widgets diese im Bearbeitungsbereich nicht mehr angezeigt und bearbeitet werden.
Begründung: Request URL too long. Mithin kann man den Fehler auch bei restriktiven Hostern unter Apache finden. Unter mehr als 40 Projekten die ich in den letzten Tagen aktualisierte, waren zwei darunter, bei denen derselbe Fehler auftrat. Sofern kein Einfluss auf die Server-Einstellungen genommen werden kann, empfiehlt sich zumindest vorübergehend das Plugin Classic Widgets, um das Problem so lange abzufangen, bis der Hoster die Einschränkung korrigiert hat.
Da ich seit jeher den in Windows integrierten Webserver IIS zum Entwickeln verwende, musste ich bei den upgedateten Sites die web.config um nachfolgende Einträge ergänzen, um das Problem zu beheben.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
</configuration>
Gesamte web.config für WordPress Stand Alone
<?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>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
</configuration>
Gesamte web.config für WordPress Multisite
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule 1" stopProcessing="true">
<match url="^index\.php$" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="WordPress Rule 2" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" />
<action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
</rule>
<rule name="WordPress Rule 3" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
<action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
</rule>
<rule name="WordPress Rule 4" stopProcessing="true">
<match url="^" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
<rule name="WordPress Rule 5" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" />
<action type="Rewrite" url="{R:2}" />
</rule>
<rule name="WordPress Rule 6" stopProcessing="true">
<match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
<action type="Rewrite" url="{R:2}" />
</rule>
<rule name="WordPress Rule 7" stopProcessing="true">
<match url="." ignoreCase="false" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
<httpErrors existingResponse="PassThrough"/>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
</system.webServer>
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
</configuration>
Schreibe einen Kommentar