feat(archivarix): add wordpress fallback version urls
This commit is contained in:
parent
a1a702b386
commit
5ff62ba34a
|
@ -51,27 +51,27 @@ const ARCHIVARIX_PROTOCOL = 'any';
|
||||||
/**
|
/**
|
||||||
* Return 1px.png if image does not exist.
|
* Return 1px.png if image does not exist.
|
||||||
*/
|
*/
|
||||||
const ARCHIVARIX_FIX_MISSING_IMAGES = 1;
|
const ARCHIVARIX_FIX_MISSING_IMAGES = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return empty.css if css does not exist.
|
* Return empty.css if css does not exist.
|
||||||
*/
|
*/
|
||||||
const ARCHIVARIX_FIX_MISSING_CSS = 1;
|
const ARCHIVARIX_FIX_MISSING_CSS = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return empty.js if javascript does not exist.
|
* Return empty.js if javascript does not exist.
|
||||||
*/
|
*/
|
||||||
const ARCHIVARIX_FIX_MISSING_JS = 1;
|
const ARCHIVARIX_FIX_MISSING_JS = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return empty.ico if favicon.ico does not exist.
|
* Return empty.ico if favicon.ico does not exist.
|
||||||
*/
|
*/
|
||||||
const ARCHIVARIX_FIX_MISSING_ICO = 1;
|
const ARCHIVARIX_FIX_MISSING_ICO = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Redirect missing html pages.
|
* Redirect missing html pages.
|
||||||
*/
|
*/
|
||||||
const ARCHIVARIX_REDIRECT_MISSING_HTML = '/';
|
const ARCHIVARIX_REDIRECT_MISSING_HTML = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace a custom key-phrase with a text file or php script.
|
* Replace a custom key-phrase with a text file or php script.
|
||||||
|
@ -145,6 +145,12 @@ const ARCHIVARIX_SITEMAP_PATH = '';
|
||||||
*/
|
*/
|
||||||
const ARCHIVARIX_CATCH_MISSING = 0;
|
const ARCHIVARIX_CATCH_MISSING = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This feature is experimental. Catch urls with a missing wordpress version
|
||||||
|
* and replace them with the most recent version available
|
||||||
|
*/
|
||||||
|
const WORDPRESS_FIX_MISSING_VERSION = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do not edit under this comment
|
* Do not edit under this comment
|
||||||
*/
|
*/
|
||||||
|
@ -165,6 +171,7 @@ $LOADER = [
|
||||||
'ARCHIVARIX_CUSTOM_DOMAIN' => ARCHIVARIX_CUSTOM_DOMAIN,
|
'ARCHIVARIX_CUSTOM_DOMAIN' => ARCHIVARIX_CUSTOM_DOMAIN,
|
||||||
'ARCHIVARIX_SITEMAP_PATH' => ARCHIVARIX_SITEMAP_PATH,
|
'ARCHIVARIX_SITEMAP_PATH' => ARCHIVARIX_SITEMAP_PATH,
|
||||||
'ARCHIVARIX_CATCH_MISSING' => ARCHIVARIX_CATCH_MISSING,
|
'ARCHIVARIX_CATCH_MISSING' => ARCHIVARIX_CATCH_MISSING,
|
||||||
|
'WORDPRESS_FIX_MISSING_VERSION' => WORDPRESS_FIX_MISSING_VERSION,
|
||||||
];
|
];
|
||||||
|
|
||||||
$ARCHIVARIX_SETTINGS = array();
|
$ARCHIVARIX_SETTINGS = array();
|
||||||
|
@ -285,6 +292,18 @@ function getFileMetadata( $dsn, $url )
|
||||||
return $metadata;
|
return $metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getOtherVersionUrls( $url )
|
||||||
|
{
|
||||||
|
global $dsn;
|
||||||
|
$path = parse_url($url, PHP_URL_PATH);
|
||||||
|
$pdo = new PDO( $dsn );
|
||||||
|
$sth = $pdo->prepare( 'SELECT rowid, * FROM structure WHERE url LIKE :urlRegexVersion AND enabled = 1 ORDER BY filetime DESC LIMIT 1' );
|
||||||
|
// TODO better LIKE statement based on domain
|
||||||
|
$sth->execute( ['urlRegexVersion' => 'http://%'.$path.'%'] );
|
||||||
|
$metadata = $sth->fetch( PDO::FETCH_ASSOC );
|
||||||
|
return $metadata;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
@ -431,6 +450,12 @@ function handle404( $sourcePath, $url )
|
||||||
http_response_code( 301 );
|
http_response_code( 301 );
|
||||||
exit( 0 );
|
exit( 0 );
|
||||||
break;
|
break;
|
||||||
|
case ( $LOADER['WORDPRESS_FIX_MISSING_VERSION'] ) :
|
||||||
|
$otherVersionFound = getOtherVersionUrls($url);
|
||||||
|
if ( $otherVersionFound ) {
|
||||||
|
render( $otherVersionFound, $sourcePath, $url );
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
http_response_code( 404 );
|
http_response_code( 404 );
|
||||||
}
|
}
|
||||||
|
@ -597,4 +622,4 @@ try {
|
||||||
} catch ( \Exception $e ) {
|
} catch ( \Exception $e ) {
|
||||||
http_response_code( 503 );
|
http_response_code( 503 );
|
||||||
error_log( $e );
|
error_log( $e );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user