This is an API client to interact with the Htaccess tester.
composer require madewithlove/htaccess-api-client
The package can be used with every PSR-compatible http client. In this example, we're going to be using guzzle's PSR adapter.
use Http\Factory\Guzzle\ServerRequestFactory;
use Http\Adapter\Guzzle6\Client;
use Madewithlove\HtaccessClient
$client = new HtaccessClient(
new Client(),
new ServerRequestFactory()
);
$response = $client->test(
'http://localhost',
'RewriteRule .* /foo [R]'
);
$response->getOutputUrl(); // "http://localhost/foo"
$response->getLines();
/*
array(1) {
[0]=>
object(Madewithlove\ResultLine)#30 (5) {
["line":"Madewithlove\ResultLine":private]=> string(23) "RewriteRule .* /foo [R]"
["message":"Madewithlove\ResultLine":private]=> string(98) "The new url is http://localhost/foo
Test are stopped, a redirect will be made with status code 302"
["isMet":"Madewithlove\ResultLine":private]=> bool(true)
["isValid":"Madewithlove\ResultLine":private]=> bool(true)
["wasReached":"Madewithlove\ResultLine":private]=> bool(true)
}
}
*/
Htaccess Tester supports passing server variables to be evaluated by the rewrite rules. We currently support the following variables.
Server variables can be passed to the test()
and share()
methods.
$serverVariables = ServerVariables::default()->with(
'SERVER_NAME',
'example.com'
);
$response = $client->test(
'http://localhost',
'RewriteCond %{SERVER_NAME} example.com
RewriteRule .* /foo [R]',
$serverVariables
);
$response = $client->share(
'http://localhost',
'RewriteCond %{SERVER_NAME} example.com
RewriteRule .* /foo [R]',
$serverVariables
);