{"id":128,"date":"2018-04-27T18:24:27","date_gmt":"2018-04-27T18:24:27","guid":{"rendered":"http:\/\/poparideblog.wpengine.com\/?p=128"},"modified":"2020-07-24T21:31:56","modified_gmt":"2020-07-24T21:31:56","slug":"how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy","status":"publish","type":"post","link":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/","title":{"rendered":"How to host your WPEngine blog in a subdirectory using a reverse proxy"},"content":{"rendered":"<h2>Having your cake and eating it too<\/h2>\n<p>Hosting, scaling and maintaining your own blog is neither fun nor typically a good use of your time. For this reason, many companies &#8211; especially time-strapped startups &#8211; tend to use hosted services. These typically work by pointing a DNS record at the hosted instance resulting in a blog URL format that I&#8217;m sure you&#8217;re familiar with; <code>blog.example.com<\/code>.<\/p>\n<p>Early on in a venture, this approach is an entirely sensible one as you get a blog up and running with very little operational complexity or cost. It does,&nbsp;however, come at <a href=\"http:\/\/www.bloggingflail.com\/subdomains-vs-subdirectories-seo\/\" target=\"_blank\" rel=\"noopener noreferrer\">some apparent cost<\/a> to the ranking of your blog content on search engines. While this cost is hard to confirm and quantify, after considering others&#8217; experiences and our own data, at <a href=\"http:\/\/www.poparide.com\" target=\"_blank\" rel=\"noopener noreferrer\">Poparide<\/a> we decided that the time had come to optimise our search engine rankings by moving our blog from <code>blog.poparide.com<\/code>,&nbsp;&nbsp;to <code>www.poparide.com\/blog<\/code>.<\/p>\n<p>As exciting as the subdirectory vs. subdomain debate is, this article is not about that quandary. This article is about how you can have your cake and eat it too! That is, how you can use a hosted service and have your blog accessed at your root domain and in a subdirectory.<\/p>\n<h2>&nbsp;<\/h2>\n<h2>Choosing a reverse proxy<\/h2>\n<p>The standard approach for serving whole websites at an entirely different domain to where it is actually hosted is to use a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Reverse_proxy\" target=\"_blank\" rel=\"noopener noreferrer\">reverse proxy<\/a>.<\/p>\n<p>At Poparide, we are using <a href=\"http:\/\/wpengine.com\">WPEngine<\/a>&nbsp;to host our blog, as our content creators were most comfortable with WordPress. While <a href=\"https:\/\/wpengine.com\/support\/using-reverse-proxy-service-wp-engine\/\" target=\"_blank\" rel=\"noopener noreferrer\">WPEngine does support the use of reverse proxies<\/a> in combination with their service, they <a href=\"https:\/\/wpengine.com\/support\/blog-sub-directory\/\" target=\"_blank\" rel=\"noopener noreferrer\">do not support the hosting of content within a subdirectory<\/a>&nbsp;such as <code>example.com\/blog<\/code>.&nbsp;We are neither PHP nor WordPress developers, so the prospect of getting mired in the internals of a WordPress instance was&nbsp;very unappealing to us. For this reason and because we believe it&#8217;s a cleaner approach, we opted to consider&nbsp;the hosted WordPress instance a black-box and fake access via a subdirectory in the reverse proxy.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-132 size-full\" src=\"http:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/Reverse-Proxy-and-WP-Engine.png\" alt=\"\" width=\"960\" height=\"720\" srcset=\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/Reverse-Proxy-and-WP-Engine.png 960w, https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/Reverse-Proxy-and-WP-Engine-300x225.png 300w, https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/Reverse-Proxy-and-WP-Engine-768x576.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>Faking the <code>\/blog\/<\/code>&nbsp;subdirectory in our reverse proxy keeps complexity in one place; in the reverse proxy configuration. Since no complex WordPress configuration or plugins are required as a result, it makes it easier for us to potentially move away from WordPress if we ever want to. However, it did mean having an additional requirement when it came to choosing a reverse proxy; it needed to be able to dynamically rewrite both the headers and bodies of requests and responses. For example, we needed<code>example.com\/blog\/some-neat-article<\/code>&nbsp;to be translated to a request to WPEngine at <code>ourblogname.wpengine.com\/some-neat-article<\/code>, and any links in the response to be converted from <code>ourblogname.wpengine.com\/yet-another-article<\/code>&nbsp;to <code>example.com\/blog\/yet-another-article<\/code>.<\/p>\n<p>There were several candidates considered, but in the end, <a href=\"https:\/\/www.nginx.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Nginx<\/a> was a clear winner. It is fast, intuitively configurable and proven. <a href=\"http:\/\/www.haproxy.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">HAProxy<\/a> was a close runner-up but was ultimately disqualified due to not supporting the rewriting of body content. Not only did Nginx come with excellent header and body rewriting capabilities, after experimenting with both, we felt that it was a lot friendlier to configure than HAProxy.<\/p>\n<h2>&nbsp;<\/h2>\n<h2>Configuring the reverse proxy<\/h2>\n<p>Nginx proved to be a breeze to configure and we quickly had a working configuration up and running that handled:<\/p>\n<ul>\n<li>stripping of <code>\/blog\/<\/code>from the path for requests to WPEngine<\/li>\n<li>rewriting of references to the WPEngine subdomain in their responses<\/li>\n<li>removal of headers in both directions that we didn&#8217;t want being passed around (secrets in Cookies, for example &#8211; be careful not to leak them!)<\/li>\n<li>caching of most responses<\/li>\n<\/ul>\n<p>And here&#8217;s roughly what our Nginx&nbsp;<a href=\"https:\/\/gist.github.com\/lukeburden\/e90812f65f548bf13610fc9b61ef6a08\" target=\"_blank\" rel=\"noopener noreferrer\">configuration looks like<\/a>!<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">proxy_cache_path \/var\/nginx\/cache levels=1:2 keys_zone=blog_cache:1m max_size=100m inactive=60m use_temp_path=off;\n\nserver{\n    listen    80;\n    server_name    example.com;\n\n    # prevent redirects by WP for missing trailing slashes\n    rewrite ^([^?#]*\/)([^?#.\/]+)([?#].*)?$ $1$2\/$3 permanent;\n    # prevent forwarding of cookies\n    proxy_set_header    Cookie               \"\";\n\n    # prevent passing of WP cookie back to client\n    proxy_hide_header       Set-Cookie;\n\n    # hide a range of other, unimportant headers\n    proxy_hide_header       link;\n    proxy_hide_header       wpe-backend;\n    proxy_hide_header       x-pingback;\n\n    # add high-precedence location to avoid proxying WPEngine's robot.txt file\n    location \/blog\/robots.txt {return 404;}\n    location  \/blog\/ {\n        proxy_pass          https:\/\/exampleblog.wpengine.com:443\/;\n        proxy_set_header    Host                 exampleblog.wpengine.com;\n\n        # ask WPEngine for uncompressed content as otherwise it complicates re-writing\n        proxy_set_header    Accept-Encoding      \"\";\n\n        # strip \/blog\/ from the path\n        rewrite \/blog\/(.*) \/$1  break;\n\n        # replace all instances of the WPEngine subdomain from the response\n        subs_filter_types   text\/html text\/css text\/xml;\n        subs_filter         'exampleblog.wpengine.com' 'example.com\/blog' gi;\n\n    }\n\n    # we cache all content for 60 minutes, ignoring WPEngine cache\n    # headers but not caching most errors\n    proxy_cache blog_cache;\n    proxy_ignore_headers Cache-Control;\n    proxy_cache_valid 200 302 60m;\n    proxy_cache_valid 404     10m;\n}<\/pre>\n<h2>Finer points to consider<\/h2>\n<h3>Leakage of secrets<\/h3>\n<p>By default, a reverse proxy will forward all parts of a request to the backend hosting service. If you are using a subdomain that also serves other functionality besides your blog, it is easy to have cookies related to that other functionality leaked to the backend hosting service. This is not good! Test thoroughly and ensure that any cookies you don&#8217;t want to be sent through to the backend are being properly stripped out. Consider preventing them from being submitted through tuning your Cookies&#8217; path and domain parameters.<\/p>\n<h3>IP being blocked by WPEngine<\/h3>\n<p>Since all your blog traffic in this approach is coming from a single or small range of IP addresses, it is likely that the fine Ops folk at your hosting solution will notice this and assume it is nefarious. For this reason, it is probably a good idea to reach out to them and request that your IP addresses be whitelisted. WPEngine has proven receptive to doing this for us.<\/p>\n<p>That being said, if you use basic caching as in the example above, the traffic to your blog hosting service will be pretty insignificant and most likely won&#8217;t raise alarms.<\/p>\n<h3>Increased bandwidth usage<\/h3>\n<p>Be aware that deciding to host your blog this way means having all your blog traffic enter and exit your network. This may result in extra cost to you depending on your network. Use of caching will certainly help reduce this though, as it avoids every hit on your blog resulting in a request to your blog hosting service.<\/p>\n<hr>\n<p>And yes, this article is being served up to you with the approach described within &#8211; pretty meta, eh? If you have any thoughts you&#8217;d like to share or questions you might have, let us know.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.<\/p>\n","protected":false},"author":3,"featured_media":133,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-128","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to host a WPEngine blog in a subdirectory using a reverse proxy<\/title>\n<meta name=\"description\" content=\"Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to host your WPEngine blog in a subdirectory using a reverse proxy\" \/>\n<meta property=\"og:description\" content=\"Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-27T18:24:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-24T21:31:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2025\/07\/new-brand-2025-og.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Luke Burden\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luke Burden\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\"},\"author\":{\"name\":\"Luke Burden\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/#\/schema\/person\/95d35f9a0a3ec6cf63d27fac9a1ff733\"},\"headline\":\"How to host your WPEngine blog in a subdirectory using a reverse proxy\",\"datePublished\":\"2018-04-27T18:24:27+00:00\",\"dateModified\":\"2020-07-24T21:31:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\"},\"wordCount\":905,\"commentCount\":28,\"publisher\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg\",\"articleSection\":[\"Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\",\"url\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\",\"name\":\"How to host a WPEngine blog in a subdirectory using a reverse proxy\",\"isPartOf\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg\",\"datePublished\":\"2018-04-27T18:24:27+00:00\",\"dateModified\":\"2020-07-24T21:31:56+00:00\",\"description\":\"Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.\",\"breadcrumb\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage\",\"url\":\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg\",\"contentUrl\":\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg\",\"width\":3024,\"height\":4032,\"caption\":\"Maker:S,Date:2017-8-31,Ver:6,Lens:Kan03,Act:Lar02,E-Y\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/poparideblog.wpengine.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to host your WPEngine blog in a subdirectory using a reverse proxy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/#website\",\"url\":\"https:\/\/poparideblog.wpengine.com\/\",\"name\":\"Poparide Blog\",\"description\":\"News about Canada&#039;s biggest carpooling app\",\"publisher\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/poparideblog.wpengine.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/#organization\",\"name\":\"Poparide\",\"url\":\"https:\/\/poparideblog.wpengine.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2025\/07\/poparide-app-icon-facebook.png\",\"contentUrl\":\"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2025\/07\/poparide-app-icon-facebook.png\",\"width\":1024,\"height\":1024,\"caption\":\"Poparide\"},\"image\":{\"@id\":\"https:\/\/poparideblog.wpengine.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/#\/schema\/person\/95d35f9a0a3ec6cf63d27fac9a1ff733\",\"name\":\"Luke Burden\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/poparideblog.wpengine.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f4c8e10bc9e04b5594e290638e1b82c5b60d1209e13e1df9875ee2def3cf0069?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f4c8e10bc9e04b5594e290638e1b82c5b60d1209e13e1df9875ee2def3cf0069?s=96&d=mm&r=g\",\"caption\":\"Luke Burden\"},\"url\":\"https:\/\/poparideblog.wpengine.com\/author\/luke\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to host a WPEngine blog in a subdirectory using a reverse proxy","description":"Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/","og_locale":"en_US","og_type":"article","og_title":"How to host your WPEngine blog in a subdirectory using a reverse proxy","og_description":"Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.","og_url":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/","og_site_name":"Blog","article_published_time":"2018-04-27T18:24:27+00:00","article_modified_time":"2020-07-24T21:31:56+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2025\/07\/new-brand-2025-og.jpg","type":"image\/jpeg"}],"author":"Luke Burden","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Luke Burden","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#article","isPartOf":{"@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/"},"author":{"name":"Luke Burden","@id":"https:\/\/poparideblog.wpengine.com\/#\/schema\/person\/95d35f9a0a3ec6cf63d27fac9a1ff733"},"headline":"How to host your WPEngine blog in a subdirectory using a reverse proxy","datePublished":"2018-04-27T18:24:27+00:00","dateModified":"2020-07-24T21:31:56+00:00","mainEntityOfPage":{"@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/"},"wordCount":905,"commentCount":28,"publisher":{"@id":"https:\/\/poparideblog.wpengine.com\/#organization"},"image":{"@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg","articleSection":["Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/","url":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/","name":"How to host a WPEngine blog in a subdirectory using a reverse proxy","isPartOf":{"@id":"https:\/\/poparideblog.wpengine.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage"},"image":{"@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage"},"thumbnailUrl":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg","datePublished":"2018-04-27T18:24:27+00:00","dateModified":"2020-07-24T21:31:56+00:00","description":"Hosted Wordpress is good, and using a subdirectory for your blog is good for SEO. Learn how at Poparide we combined these good things to improve SEO for our blog content without the pain of hosting Wordpress ourselves.","breadcrumb":{"@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#primaryimage","url":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg","contentUrl":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2018\/04\/IMG_20180313_115321-1.jpg","width":3024,"height":4032,"caption":"Maker:S,Date:2017-8-31,Ver:6,Lens:Kan03,Act:Lar02,E-Y"},{"@type":"BreadcrumbList","@id":"https:\/\/poparideblog.wpengine.com\/how-to-host-wpengine-blog-in-subdirectory-using-reverse-proxy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/poparideblog.wpengine.com\/"},{"@type":"ListItem","position":2,"name":"How to host your WPEngine blog in a subdirectory using a reverse proxy"}]},{"@type":"WebSite","@id":"https:\/\/poparideblog.wpengine.com\/#website","url":"https:\/\/poparideblog.wpengine.com\/","name":"Poparide Blog","description":"News about Canada&#039;s biggest carpooling app","publisher":{"@id":"https:\/\/poparideblog.wpengine.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/poparideblog.wpengine.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/poparideblog.wpengine.com\/#organization","name":"Poparide","url":"https:\/\/poparideblog.wpengine.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/poparideblog.wpengine.com\/#\/schema\/logo\/image\/","url":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2025\/07\/poparide-app-icon-facebook.png","contentUrl":"https:\/\/poparideblog.wpengine.com\/wp-content\/uploads\/2025\/07\/poparide-app-icon-facebook.png","width":1024,"height":1024,"caption":"Poparide"},"image":{"@id":"https:\/\/poparideblog.wpengine.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/poparideblog.wpengine.com\/#\/schema\/person\/95d35f9a0a3ec6cf63d27fac9a1ff733","name":"Luke Burden","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/poparideblog.wpengine.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f4c8e10bc9e04b5594e290638e1b82c5b60d1209e13e1df9875ee2def3cf0069?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f4c8e10bc9e04b5594e290638e1b82c5b60d1209e13e1df9875ee2def3cf0069?s=96&d=mm&r=g","caption":"Luke Burden"},"url":"https:\/\/poparideblog.wpengine.com\/author\/luke\/"}]}},"_links":{"self":[{"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/posts\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/comments?post=128"}],"version-history":[{"count":0,"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/posts\/128\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/media\/133"}],"wp:attachment":[{"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/media?parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/categories?post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/poparideblog.wpengine.com\/wp-json\/wp\/v2\/tags?post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}