0

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

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

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

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

我要求不高?我在网上看到的大部分内容都有助于其中的一部分,但不是全部。似乎最好不要在此粘贴我的捣碎尝试,而是寻求帮助。

我在根 .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]

然后在 subdirectory1 .htaccess 文件中...

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

但我仍然无法让它按要求工作。请帮忙(而且我无权使用此网络空间制作虚拟主机。)

4

1 回答 1

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 提到的虚拟主机设置。这需要通过您的控制面板软件或与您主机的支持人员一起完成。

于 2013-02-04T08:34:30.147 回答