2015-11-11 40 views
2

我需要訪問位於我的域中的子文件夾中的我的網站。.htaccess:使用代理重定向/重寫隱藏子域

挑戰 - 由於我的託管結構,所有站點位於子文件夾中的主域服務器上。域被映射到每個站點的文件夾。主域,然而,映射到服務器根這樣的 -

•/網絡/(www.masterdomain.com的根)

  • /文件夾1 /(www.site1的根。 COM)

  • /文件夾2 /(www.site2.com的根)

  • /文件夾3 /(www.site3.com的根)

  • /文件夾4 /(期望根主域)

如果我安裝我的CMS中的文件夾4,一切都很好,但CMS代碼在服務器的根目錄(使用DOCUMENT_ROOT我認爲)創造了新的資產,而不是在子文件夾中。

試圖修復1:

使用重寫刪除子文件夾,並設置所有路徑以包括子文件夾。 失敗 - CMS按需運行,但資產仍在根中創建。

嘗試修復2:

地圖一個子文件夾和重寫URL刪除子域。 失敗:CMS在子域上工作並在子文件夾中創建資源(win!),但不能重寫子域。

試圖修復3:

映射一個子域的文件夾,並使用代理標誌從主域至不可見地從它加載內容。

取得進展!主頁面顯示正確的URL,但鏈接的文件和子文件夾不起作用。

所以我現在可以達到我的web應用程序: app.exampledomain.com(應用程序完美的作品在所有方面) OR exampledomain.com(代理實際上,所有子文件夾和鏈接斷開)

這裏是我的htaccess:

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

# Proxy subfolders 
RewriteRule ^exampledomain.com/(.+?)?$ http://app.exampledomain.com/$1 [P,L,NC] 
# Proxy main 
RewriteRule ^(exampledomain.com)?$ http://app.exampledomain.com/ [P,L,NC] 

那麼,爲什麼我的子文件夾/資產不工作?問題與.htaccess?壞邏輯?

重要注意事項 - /文件夾/ 頁面上的斷開的鏈接都是這種格式 - - JS/foundation.min 子文件夾頁被稱作的index.php所以可以從訪問。js

謝謝。

回答

0

RewriteRule對域名一無所知,它僅適用於本地路徑。

相反,在檢查的RewriteCond域名:

RewriteCond %{HTTP_HOST} ^(www\.)*exampledomain\.com$ [NC] 
RewriteRule (.*) http://httpd.apache.org/$1 [P,L] 

但啓用mod_alias或虛擬主機會在這裏更正確的決定。

+0

謝謝你的提示。在這種情況下VirtualHost對我來說不可用,但我很快就會看到mod_alias。 – Doooder