2017-11-11 158 views
0

我們需要新服務器的解決方案,我們有一個主域名,例如example.com及其託管在VPS上的網站是在ASP.Net中的博客例如example.com/blog,博客位於子目錄中並使用Wordpress。我們獲得了新的服務器,並且我們希望將我們的博客移動到新的VPS上,以便我們在主域上創建子域,例如blog.example.com並更改控制面板中的A記錄和blog.example.com工作正常,但我們希望顯示像這樣的example.com/blog/網址有什麼方法可以將子域顯示爲子目錄?主網站將保持在主服務器上的主機,我們只需要使用子域。因此,它顯示像所有的環節,example.com/blog/post-name/子域作爲URL中的子目錄

+1

「反向代理」就是你要找的。如果您使用的是Apache並且啓用了mod_rewrite和mod_proxy,那麼它可以像RewriteRule一樣簡單,或者如果您將它用作前端,則可以在nginx中執行。 – janh

+0

謝謝,我已經安裝了WHM並檢查了mod_rewrite的apache模塊,但我找不到它。但是我找到了啓用的mod_proxy。我怎樣才能激活mod_rewrite?通過.htaccess? –

+0

mod_rewrite不可用。如果在.htaccess中添加'RewriteEngine On',它會崩潰嗎?如果是這樣,你需要啓用它,這可以像運行'a2enmod rewrite'作爲root並重新啓動apache一樣簡單。如果可行,請嘗試[P-flag](http://httpd.apache.org/docs/current/rewrite/flags.html#flag_p)。 – janh

回答

0

在你的.htaccess試試這個:

RewriteEngine On 
RewriteRule ^blog/(.*) http://blog.example.com/$1 [P,L] 

它使用的mod_proxy(如果它不是可用會失敗),以反向代理/ blog /下的流量。很明顯,如果你有很多流量或兩臺服務器之間的連接不良,你會想要一些緩存,但通常效果很好。

你可能會設置

define('WP_HOME', 'http://example.com/blog'); 
define('WP_SITEURL', 'http://example.com/blog'); 

您在wp-config.php文件,因此內部鏈接指向你希望他們爲工作URL。

+0

謝謝你的回覆,我試過用上面的方法,但是我得到了404 Not Found錯誤。並且mod_proxy已啓用。 –

+0

這很奇怪,它可以在多臺服務器上正常工作。你看到目標服務器上的請求嗎? 404通常指向mod_proxy不可用。你把這個放在WP規則上面嗎?否則,WP將接管並呈現您的404. – janh

+0

我將頂級代碼放在.htaccess中,並在wp-config.php文件中定義('WP_HOME'代碼。該URL顯示example.com/blog但404錯誤。是否必須在我的主域example.com上託管的其他服務器上或者blog.example.com服務器上的所有內容上做些什麼? –