2017-10-05 87 views
0

我的Hoster允許多個網站,但只有一個DocumentRoot適用於所有域。。具有一個文檔根的多個網站的.htaccess設置

我想什麼是網站與不同的內容:

https://www.site1.com 
https://www.site2.com 

我有什麼:

Directory Structure 
/html/ <- Document root 
/html/site1.com/ <- Symlink to /pages/site1.com/web 
/html/site2.com/ <- Symlink to /pages/site2.com/web 

如何它應該工作:

Browser: https://www.site1.com/folder/ 
<- this will internally gets internally redirected to /pages/site1.com/web/folder/ 

目前的.htaccess解決方案:

RewriteCond %{REQUEST_URI} !^/site1.com/.*$ 
RewriteCond %{HTTP_HOST} ^site1.com$ [NC] 
RewriteRule ^(.*)$ /site1.com/$1 [L,NC] 

它工作,如果我訪問https://www.site1.com/folder/

但問題是我不想要:

1)如果我訪問site1.com/folder(沒有最後的斜線),Web服務器將自動重定向到https://www.site1.com/site1.com/folder/而不是https://www.site1.com/folder/。 我認爲這是由於Apache的自動跟蹤斜槓功能(共享虛擬主機與有限的SSH帳戶)。 一個可能的解決方案是重定向301所有網絡瀏覽器https:// 網站/sitefolder .com /請求uri的非/site1.com/請求uri's。 但我測試的每個htaccess規則失敗。我不想讓http://www.site1.com/site1.com & https://www.site1.com/site2.com由於重複的內容而可訪問。

我該如何解決這個問題,並將一個文檔根目錄與多個域作爲沒有重複內容的子目錄/重定向到子文件夾內?

+0

你可以使用完整的URL(包括http)更改示例嗎?如果'site1.com/site1.com/folder /'應該是'http:// site1.com/site1.com/folder /'或'http://site1.com/site1.com/site1',我很困惑.com /文件夾/' 如果你的意思是從Server的角度來看文件夾的加入'/ html /'eg:'/ html/site1.com/site1.com/folder /' – Webdesigner

+0

感謝評論,done – emovere

回答

0

這不可能在3行來,所以這裏是我會做什麼:

RewriteEngine On 

# First we check if we have a direct access to our folder and prevent it with a 404 Error 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{REQUEST_URI} ^/?site1\.com(/.*)?$ [NC] 
RewriteCond %{REQUEST_URI} ^/?site2\.com(/.*)?$ [NC] 
RewriteRule ^.*$ - [R=404,L] 

# Optional you can redirect all non-www to www, http or https stay the same 
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC] 
RewriteRule ^/?(.*)$ %{REQUEST_SCHEME}://www.%1/$1 [R=301,L] 

# Now we rewriting all request based on the requesting host works with www and non-www 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^/?(.*)$ /%1/$1 [L] 

答案假設該文件夾被稱爲一樣的主機,但沒有龍頭www.,你有它在你的問題。所以對於http://www.example.com該文件夾必須是example.com

相關問題