2016-04-08 131 views
0

我最近將幾個域移動到GoDaddy,並且目前正在努力獲取正確設置每個域的目錄結構。我的每個插件域都位於public_html /下的自己的目錄中。此外,我想將我的主域名移動到其自己的子文件夾中進行清潔。其結果是,我的目錄設置是這樣的:使用CPanel將域移動到子目錄

public_html/ 
    primarydomain/ 
    addondomainA/ 
    addondomainB/ 
    addondomainC/ 

設置我的.htaccess文件public_html下如下:

RewriteEngine on 

# Rewrite direct addondomain access to their proper domains 
RedirectMatch ^/addondomainA.com/(.*)$ http://addondomainA.com/$1 
RedirectMatch ^/addondomainB.com/(.*)$ http://addondomainB.com/$1 
RedirectMatch ^/addondomainC.com/(.*)$ http://addondomainC.com/$1 

# Rewrite primary domain access to the primarydomain/ folder 
RewriteCond %{HTTP_HOST} ^(www.)?primarydomain.com/ 
RewriteCond %{REQUEST_URI} !^/primarydomain/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /primarydomain/$1 
RewriteCond %{HTTP_HOST} ^(www.)?primarydomain.com$ 
RewriteRule ^(/)?$ primarydomain/index.html [L] 

的附加域完全重定向工作,如果我嘗試訪問PRIMARYDOMAIN .com,請求被正確地重寫到primarydomain /子目錄。但是,如果我嘗試訪問primarydomain.com/primarydomain,則無法重寫(據我所知),用戶可以直接訪問該頁面。我想禁止所有對primarydomain /文件夾的直接訪問請求,但我嘗試的任何東西似乎都不起作用。我認爲刪除:

RewriteCond %{REQUEST_URI} !^/primarydomain/ 

會做些什麼,但它似乎對行爲沒有影響。同樣,兩者:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

...似乎沒有任何影響,如果刪除。我甚至嘗試在頂部添加第四個RedirectMatch子句,希望在插入時捕獲文件夾名稱,但會導致重定向循環,就像它正在按順序處理命令一樣。我已經吞噬了堆棧溢出所能找到的所有答案,但沒有一個能解決問題。我試過多個新的瀏覽器,並且非常確定這不是緩存問題。

有沒有人有任何想法如何完成這個看似超級基本的任務?有什麼我忽略了嗎?提前致謝。

回答

0

你可以嘗試使用一個cname回到正確的目錄(在cPanel的高級dns中的cname)

相關問題