我在專用的Apache服務器上運行電子商務網站。我還有一個可在http://www.example1.com/blog
訪問的博客,但博客不在電子商務網站的同一臺機器上。爲了實現這個目標,我在主電子商務服務器上設置了一個反向代理服務器,當人們嘗試訪問http://www.example1.com/blog
時服務於http://www.example2.com/
。第二臺服務器是使用Bitnami的AMI運行WordPress的AWS EC2實例,防火牆規則只允許我們的電子商務服務器訪問。WordPress反向代理背後的子目錄
在WordPress中,我的網站網址和主頁網址設置都設置爲http://www.example1.com/blog
。我的WordPress服務器的.htaccess配置如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
大多數情況下,這是行之有效的。如預期的那樣,主博客頁面和所有HREF以http://www.example1.com/blog
開頭。我的問題是重定向沒有正確處理。例如,將帖子的漂亮網址(如http://www.example1.com/blog/my-post
)錯誤地重定向到http://www.example1.com/my-post/
(請注意,缺少「blog」子目錄)。此問題也影響我們使用wp-admin界面的能力,因爲它也從其重定向中剝離了「blog」子目錄。
我確定我在博客服務器的Apache和/或WordPress配置中存在一些問題,但是我經過很長時間的修改之後一直無法弄清楚。
我該如何解決這個問題?
編輯:
爲了澄清,在博客上的WordPress服務器安裝在站點根目錄,而不是在一個子目錄。這只不過是被訪問,就好像它是一個子目錄由主服務器電子商務對下列Apache的反向代理規則的方式:
ProxyPreserveHost On
ProxyRequests Off
<Location "/blog">
ProxyPass http://www.example2.com
ProxyPassReverse http://www.example2.com
Order allow,deny
Allow from all
</Location>
任何解決方案??? –