{"id":6580,"date":"2009-09-11T20:47:37","date_gmt":"2009-09-11T20:47:37","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/ossdl-cdn-off-linker\/"},"modified":"2011-05-25T12:14:51","modified_gmt":"2011-05-25T12:14:51","slug":"ossdl-cdn-off-linker","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/ossdl-cdn-off-linker\/","author":4161930,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.1","stable_tag":"1.3.1","tested":"3.1.4","requires":"2.7","requires_php":"","requires_plugins":"","header_name":"CDN Linker lite","header_author":"W-Mark Kubacki","header_description":"","assets_banners_color":"","last_updated":"2011-05-25 12:14:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/wmark\/CDN-Linker","header_author_uri":"http:\/\/mark.ossdl.de\/","rating":3.7,"author_block_rating":0,"active_installs":20,"downloads":12383,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":{"1":"1","2":0,"3":0,"4":0,"5":"2"},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.0.2","1.1.0","1.1.1","1.3.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3863,3875,175,84,44550],"plugin_category":[50,52,54],"plugin_contributors":[87827],"plugin_business_model":[],"class_list":["post-6580","plugin","type-plugin","status-publish","hentry","plugin_tags-cdn","plugin_tags-cloudfront","plugin_tags-links","plugin_tags-media","plugin_tags-simplecdn","plugin_category-media","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-wmark","plugin_committers-wmark"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/ossdl-cdn-off-linker.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Replaces the blog URL by another for all files under <code>wp-content<\/code> and <code>wp-includes<\/code>.\nThat way static content can be handled by a CDN by origin pull. (The origin is your blog address.)<\/p>\n\n<p>You could upload your static files to S3, CloudFront or just any site, too.\nFor S3\/Cloudfront, see <a href=\"http:\/\/mark.ossdl.de\/2009\/09\/how-to-copy-your-wordpress-files-to-cloudfront-efficiently\/\" title=\"how to copy your Wordpress files to CloudFront efficiently\">this script<\/a>\nto help you with uploading\/synchronizing your blog files.<\/p>\n\n<p>This <code>lite<\/code> version of the plugin works like the regular version but is not supported.\nYou can get the regular version at <a href=\"https:\/\/github.com\/wmark\/CDN-Linker\" title=\"CDN Linker at Github\">Github<\/a>, which:<\/p>\n\n<ul>\n<li>Is free of charge, open source and without any ads.<\/li>\n<li>Supported. Here is <a href=\"https:\/\/github.com\/wmark\/CDN-Linker\/issues\" title=\"bug tracker\">the bug tracker<\/a> if you encounter any issues.<\/li>\n<li>Has more and advanced features.<\/li>\n<li>Is updated more frequently. See <a href=\"https:\/\/github.com\/wmark\/CDN-Linker\/downloads\" title=\"Downloads page\">Downloads<\/a>.<\/li>\n<li>Quality assurance.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Setup your CDN: Either configure an origin pull, mirror bucket or upload your static files somewhere.<\/li>\n<li>Upload the plugin to your <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Provide the URL where your static files can be found under <code>Settings<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt>How to uninstall?<\/dt>\n<dd><p>Either deactivate the plugin or delete the plugin's directory.<\/p><\/dd>\n<dt>Why another such plugin?<\/dt>\n<dd><p>As many WP plugins don't correctly include JS and CSS files most of the current CDN plugins cannot\nrewrite links correctly. They rely on the high-level WP API.<\/p>\n\n<p>This plugin does its rewriting on the lowest level possible - PHP itself.<\/p><\/dd>\n<dt>How does it work?<\/dt>\n<dd><p>After your blog pages have been rendered but before sending them to the visitor,\nit will rewrite links pointing to <code>wp-content<\/code> and <code>wp-includes<\/code>. That rewriting will simply\nreplace your blog URL with that you have entered in settings screen.<\/p>\n\n<p>Thus files are pulled from the other site.<\/p><\/dd>\n<dt>Is it compatible to plugin XY?<\/dt>\n<dd><p>Yes, by design it is compatible to all plugins. It hooks into a PHP function (<a href=\"http:\/\/us2.php.net\/manual\/en\/function.ob-start.php\" title=\"function documentation\">ob_start<\/a>)\nand there does the string replacement. Therefore, no Wordpress function is altered, overwritten or modified in any way.<\/p>\n\n<p>Indeed, you could even copy this plugin's rewriter into any arbitrary PHP software.<\/p><\/dd>\n<dt>Where can I see it in action?<\/dt>\n<dd><p>On my own blog, <a href=\"http:\/\/mark.ossdl.de\/\" title=\"Mark's blog\">Mark's blog<\/a>. See the source code of any page.<\/p><\/dd>\n<dt>Will it work with my CDN?<\/dt>\n<dd><p>Yes, if it supports origin pull (aka mirror bucket, some sort of caching). Or if you upload your files manually.<\/p><\/dd>\n<dt>What about Amazon's S3?<\/dt>\n<dd><p>Right, S3 doesn't support origin pull. You will have to upload your files by hand.\nI've written a script for this, too, so it is just a matter of running it. It is linked on the bottom of my blog post about <a href=\"http:\/\/mark.ossdl.de\/2009\/09\/how-to-copy-your-wordpress-files-to-cloudfront-efficiently\/\" title=\"how to copy your Wordpress files to S3 efficiently\">copying files to S3<\/a>.<\/p><\/dd>\n<dt>What other plugins do you recommend?<\/dt>\n<dd><p>Now that you can offload all the files such as images, music or CSS, you should serve your blog posts as static files to decrease load on your server.\nI recommend <a href=\"http:\/\/murmatrons.armadillo.homeip.net\/features\/experimental-eaccelerator-wp-super-cache\" title=\"Wordpress SuperCache-Plus\">SuperCache-Plus<\/a>\nas it will maintain, update and create that static files from dynamic content for you.\nThe off-linker is compatible.<\/p><\/dd>\n<dt>Alternatives?<\/dt>\n<dd><p>The experts at <code>Arcostream<\/code> currently develop (or have it ready by now) a plugin which enables you to set up a CDN at their's\nwith one click or two. Without any configuration, everything is automatic. Please google their licensed flavour of this plugin. ;-)<\/p><\/dd>\n<dt>I discovered a bug!<\/dt>\n<dd><p>If you are using the <code>lite<\/code> version, please upgrade.\nThe following applies only to the <code>regular<\/code> version which you can find at <a href=\"https:\/\/github.com\/wmark\/CDN-Linker\" title=\"CDN Linker at Github\">Github<\/a>.<\/p>\n\n<p>Share it with me! The rarer a species, the more interesting. But I will need its habitat, too.\nTherefore, please send me at least one page with the plugin turned off and on, as attachment.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Lite version. With less features, but as simple as the original.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Support for multiple CDN (domain) names. (Idea by \"ericesev\" and \"digory\". You're great!)<\/li>\n<li>New option to rewrite \"root-relative\" links has been added. (As suggested by Tony Stuck. Thanks!)<\/li>\n<li>The plugin has been rewritten and received unit tests.<\/li>\n<\/ul>\n\n<p>The plugin has been<\/p>\n\n<ul>\n<li>renamed to \"CDN Linker\" and<\/li>\n<li>moved to <a href=\"https:\/\/github.com\/wmark\/CDN-Linker\">Github<\/a>.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>version bump due to Wordpress' plugin page having released the plugin prematurely<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>an input field has been added for defining matches that shall be excluded from rewriting<\/li>\n<li>added the feature to include additional (to <code>wp-content<\/code> and <code>wp-includes<\/code>) directories for rewriting<\/li>\n<li>fixed: bug which messed with urls located at the root level of the site, introduced in 1.0.2 (thanks to Vic Holtreman for reporting)<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>rewriting of URLs from embedded <code>style=xy:url(...)<\/code> CSS attributes<\/li>\n<li>fixed: wrongful rewrite of links into the blogs root directory (thanks to Greg Winn for reporting)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>support for off-loading files in root directory, such as <code>favicon.ico<\/code> or <code>apple-touch-icon.png<\/code><\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>initial version, as published on my blog<\/li>\n<\/ul>","raw_excerpt":"Rewrites links to static files to your own CDN network.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/6580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=6580"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wmark"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=6580"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=6580"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=6580"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=6580"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=6580"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=6580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}