Skip to content

Instantly share code, notes, and snippets.

@mindflayer
Last active November 21, 2017 23:46
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mindflayer/b1f0ccc2a3c0b1af8eaa to your computer and use it in GitHub Desktop.
Save mindflayer/b1f0ccc2a3c0b1af8eaa to your computer and use it in GitHub Desktop.
Prerender plain PHP dispatcher file, with X-Prerender-Token
<?php
$uri = $_SERVER["REQUEST_URI"];
$ua = $_SERVER["HTTP_USER_AGENT"];
$static = "home.html"; // your real webapp HTML file (formerly index.html?)
$prerender = 0;
$regex = "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator";
if (preg_match("/($regex)/i", $ua)) {
$prerender = 1;
}
if (isset($_REQUEST["_escaped_fragment_"])) {
$prerender = 1;
}
if (preg_match("/(Prerender)/i", $ua)) {
$prerender = 0;
}
if ($prerender == 1) {
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 180,
'header'=>"X-Prerender-Token: <PRERENDER TOKEN>\r\n" // your Prerender token
)
));
echo file_get_contents("http://service.prerender.io/" . $_SERVER["SCRIPT_URI"] . "?" . $_SERVER["QUERY_STRING"], 0, $ctx);
}
else {
$myfile = fopen($static, "r") or die("Unable to open file!");
echo fread($myfile,filesize($static));
fclose($myfile);
}
return;
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment