0

我非常亲爱的 Stackoverflow 社区,

我有以下重定向问题,经过几次不成功的尝试后,我来到这里寻求启蒙。我的问题如下。我有一个域,我们称它为“www.mydomain.com”,我的“public_html”目录有两个文件夹,如下所示:

public_html

public_html/my_app/

public_html/my_other_app/

首先,我希望在输入 URL 'www.mydomain.com' 时,我会被重定向到文件夹 'my_app' 的内容,同时保持相同的 URL。事实上这我已经完成了,所以每当我输入“www.mydomain.com”时,我都会被重定向到“www.mydomain.com/index.php”,它实际上对应于“public_html/myapp/index.php”脚本在“myapp”下。

现在我想要一个名为“other.mydomain.com”的子域,它必须重定向到“my_other_app”文件夹的内容,但我不知道如何让 .htaccess 为此工作,同时为第一种情况也。

所以这基本上是,主域重定向到一个文件夹,子域重定向到另一个文件夹,并且两个文件夹都位于 public_html 目录下

任何提示都非常受欢迎。

供您参考,我在我当前的 .htaccess 文件下面发布:

RewriteEngine On

# redirect to www prefix
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
# if start with www and no https then redirect
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www.mydomain\.com$ [NC]
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
# rewrite URL to trim folder
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule ^$ /login [L,R=301]
RewriteRule ^(.*)$ test/$1 [L]

这实际上适用于我的主域,它还将 URL 重写为 https。我需要在此处添加一些内容,以便单独处理“other.mydomain.com”并重定向到“/my_other_app/”子文件夹

4

1 回答 1

0

您需要的是每个应用程序一个虚拟主机(虚拟主机)。在 vhost 中,您将定义 vhosts 根目录,该根目录将指向您的任一子目录。

有基于 IP 的虚拟主机(每个子域一个 IP 地址)或基于名称的虚拟主机(根据所有现代浏览器发送的 HTTP 主机标头选择虚拟主机)。但是关于vhosts有太多话要写在这里,只需阅读这里的apache文档:

http://httpd.apache.org/docs/2.2/vhosts/

我认为对于纯 .htaccess 文件,您不能这样做(我可能错了)。通常你会在主 apache 配置中添加虚拟主机。根据您的托管情况,这可能是不可能的。在这种情况下,请与您的托管服务提供商联系。

马克

于 2012-07-25T06:52:02.750 回答