2017-10-05 46 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

相关问题