This extension speeds up error page handling and frees up PHP workers by loading local page content without issuing an external HTTP request.
The speed increase depends on the round-trip time for external HTTP requests for your server (including resolving the DNS), but it could easily be 3x what you're having today.
- Download from the TYPO3 Extension Repository or require the extension using Composer:
composer req pixelant/pxa-lpeh
- Enable the extension in the Admin tools > Extensions module or run
vendor/bin/typo3 extension:activate pxa_lpeh
No configuration is required by default.
The extension will use the configuration for any "Show Content from Page" error handler.
- Make internal requests where Show Content From Page is to an internal TYPO3 page, e.g. "t3://page?uid=404".
- External requests will behave normally and issue an external request. E.g. where Show Content From Page points to "https://www.example.com".
By default, this extension overrides the PageContentErrorHandler
class and calls this class only if the Error Handler configuration explicitly requires an external request.
You can disable this override in the Admin tools > Settings > Extension Configuration by checking the box "Don't replace the standard 'Show Content from Page' error handler, use 'PHP Class' instead".
This extension can still be used by explicitly configuring a PHP Error Handler Class in Site management > Sites > [Your Site] > Error Handling:
- Create a new error handling
- Set "HTTP Error Status Code" to 404
- Set "How to handle Errors" to "PHP Class"
- Set "ErrorHandler Class Target (FQCN)" to
Pixelant\PxaLpeh\Error\PageErrorHandler\LocalPageErrorHandler
- Set "Show Content from Page" to a page in current Site to generate a link e.g. t3://page?uid=78
External requests for error pages can hang your site during high-load situations. We recommend setting $GLOBALS['TYPO3_CONF_VARS']['HTTP']['timeout']
to a non-zero value to alleviate this problem.
If fetching the page fails, a "generic" TYPO3 error page will be displayed with the http status code. This might be e.g. the link isn't to a page, the page doesn't exist in this site etc.
Please feel free to submit issues or contribute pull requests to this extension.