多个站点与htaccess并保持分开

时间:2013-02-01 19:11:44

标签: .htaccess mod-rewrite subdirectory

我在同一个地方托管了两个网站:domain1.com和domain2.com

起始位置是它们都指向根目录。

/ root / subdirectory1 /包含domain1.com的文件 / root / subdirectory2 /是我的其他网站的目录。

domain1.com应该选择/ subdirectory1 /文件夹中的文件。 domain2.com应该选择/ subdirectory2 /文件夹中的文件。 我也不希望能够访问domain1.com/subdirectory2/,因为它们是独立的网站。 此外,任何非www网址都应转发到www。版本

我不要求太多?我在网上看到的大部分内容都有助于解决这个问题,但不是全部。最好不要粘贴我的捣碎尝试,而是要求一个干净的石板帮助。

我在root .htaccess文件中尝试了以下内容...

RewriteEngine on
Options +FollowSymLinks
RewriteBase /
# Site 1
RewriteCond %{HTTP_HOST} ^domain1.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdirectory1/.*$
RewriteRule ^(.*)$ /subdirectory1/$1 [L]
# Site 2
RewriteCond %{HTTP_HOST} ^domain2.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdirectory2/.*$
RewriteRule ^(.*)$ /subdirectory2/$1 [L]

然后在子目录1 .htaccess文件中......

RewriteEngine On
RewriteRule ^subdomain2/(.*)$ http://www.domain1.com/$1 [R=301,L]

但我仍然无法让它按预期工作。请帮忙 (并且我无权使用此网站空间制作虚拟主机。)

1 个答案:

答案 0 :(得分:0)

如果可能,请将domain2文件夹移到domain1文件夹之外。你会很高兴的。

将它放在domain1文件夹中的.htaccess文件中:

RewriteEngine On
RewriteRule ^domain2/(.*)$ http://www.domain2.com/$1 [R=301,L]

如果domain2文件夹中有.htaccess文件,请添加:

RewriteEngine On
RewriteOptions Inherit

根据您对site1的其他规则,您可能不希望继承它们。在这种情况下,只需将第一个RewriteRule放在.htaccess文件中。

现在......所有这些假设您的网站已经在domain1.com和domain2.com上呈现。如果你想让它们渲染,那么这一切都无济于事。您需要首先正确渲染域,这将需要@ N1xx1和@David所述的vhost设置。这需要通过您的控制面板软件或与主持人的支持人员一起完成。