2011-08-04 51 views
0

我跟隨this tutorial來管理MODx Revo 2.1.3安裝的子域。這個想法是,web根文件夾中的htaccess文件將subdomain.mydomain.com的調用重定向到web根目錄中的一個文件夾,名稱與子域相同,即/ home/mydomain/www/subdomain。子域包含運行該頁面的MODx文件,以及另一個htaccess將所有其他請求指向根文件夾。.htaccess - 通過從鏈接中刪除文件夾在頁面上重定向鏈接

它的更好的部分工作;我可以查看網站的主頁(這意味着MODx正在做它的一部分),但是沒有任何指向css,js,圖像等的鏈接工作,並且Wayfinder和getResources包似乎無法輸出。正在用於圖像+ css + js的鏈接是/subdomain/assets...etc;我需要鏈接直接指向/ assets文件夾。這就像根.htaccess會將請求重定向到子域文件夾一樣,但文件夾中的.htaccess並沒有指向任何其他請求的根目錄。

這裏是我的根文件夾htaccess的,本教程所採取的第2部分:

RewriteEngine On 
RewriteBase/

# The Multiple subdomains part 
#REDIRECT SUBDOMAIN TO SUBDIRECTORY OF SAME NAME 
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ([a-z0-9][-a-z0-9]+)\.mydomain\.com\.?(:80)?$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1 -d 
RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] 
RewriteRule^- [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

和子域文件夾htaccess的僅僅是:

RewriteEngine On 
RewriteBase/

我知道網站的作品;我可以使用尚未像本教程那樣處理的子域來訪問它。所以它就在那裏,我只需要整理鏈接請求。誰能幫忙?

+0

請提供1)到js/css/img的鏈接(例如''; 2)請求的URL(例如'subdomain.example.com/js/main.js')3)它的重定向(檢查Apache訪問和錯誤日​​志)和4)它應該如何重定向。 – LazyOne

+0

根據要求: 1.); 2.)http://subdomain.mydomain.com/assets/images/filename.jpg(在瀏覽器中顯示的URL) 3.)Apache訪問日誌的輸出:GET /assets/images/filename.jpg HTTP/1.1「 404 - 「http://subdomain.mydomain.com/ 4.)http://subdomain.mydomain.com/assets/images/filename.jpg 所有這些對於JS和CSS都是一樣的;還有一個href鏈接是相同的。 – Moniarde

+0

你對Apache有多少控制?如果您可以編輯服務器配置或虛擬主機 - 啓用重寫調試('RewriteLogLevel 9'),重新啓動Apache,嘗試有問題​​的URL並檢查重寫日誌 - 您應該看到究竟發生了什麼(只是嘗試非常簡單的URL,而不是真正的帶有圖片等的頁面 - 如果你有很多重寫規則和許多請求,重寫日誌可能會在幾秒鐘內變得很大 - 儘可能讓實驗變得乾淨)。我只建議在引用資源時添加前導斜槓的一部分,例如'' – LazyOne

回答

0

感謝一些幫助,我設法找到解決這個問題的辦法。

# The Multiple subdomains part 
#REDIRECT SUBDOMAIN TO SUBDIRECTORY OF SAME NAME 
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ([a-z0-9][-a-z0-9]+)\.spitfireresources\.com\.?(:80)?$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/%1 -d 
#RewriteCond %{REQUEST_FILENAME} !^/js 
#RewriteCond %{REQUEST_FILENAME} !^/css 
#RewriteCond %{REQUEST_URI} !^/assets 
RewriteCond %{REQUEST_URI} !^/ 
RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] 
RewriteRule^- [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

關鍵行是RewriteCond %{REQUEST_URI} !^/。一旦到位,所有東西都可以訪問。感謝所有評論過的人。

相關問題