重定向&使用.htaccess仅屏蔽一个特定的子域

时间:2017-11-26 17:07:36

标签: .htaccess redirect mod-rewrite

我有以下.htaccess对我来说非常合适。现在,我试图用它的文件夹掩盖1个子域。我已经在DNS端设置了所有内容,现在当我输入app.domain.com时,它会解析为www.domain.com/app

我需要它在网址栏中保留app.domain.com,但不只是重定向到该文件夹​​。

我已经在这里待了2个小时而且无法弄明白。有人知道我应该做什么吗?

这是我的.htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{HTTP_HOST} !^app.example.com

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

RewriteBase /
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

1 个答案:

答案 0 :(得分:0)

如果我正确理解了该问题,则用户转到http://app.example.com,您希望将该用户重定向到http://app.example.com/app。是对的吗?如果是这种情况,则只需在虚拟主机上添加别名,以便example.comapp.example.com都是该目录的有效主机名。

找到 httpd-vhosts.conf 文件或同等文件,并使用以下示例的效果配置虚拟主机:

<VirtualHost *>
    DocumentRoot /path/to/site/folder
    ServerName www.example.com
    ServerAlias app.example.com example.com
</VirtualHost>

如果您想进一步研究,请more information on the ServerAlias directive