从特定网址

时间:2017-01-30 14:40:25

标签: apache .htaccess

我有网站example.com

在其中一个文件夹中,我有一个不同的网站,可通过域exampleSubSite.com访问,第二个网站的文件夹名为/exampleSubSiteFolder/

通过主站点.htaccess中的重定向进行访问:

 RewriteRule ^exampleSubSiteFolder - [L]
 RewriteCond %{HTTP_HOST} ^(www\.)?exampleSubSite\.com$ [NC]
 RewriteRule ^(.*)$ exampleSubSiteFolder/$1 [L]

但是,我不要希望可以从主站点的URL访问此文件夹:

exampleSite.com/exampleSubSiteFolder/

有人可以帮助我吗?我知道解决方案整体上很糟糕,但这并不取决于我。

2 个答案:

答案 0 :(得分:1)

为此,在名为async的文件夹中创建一个await文件,并在其中添加以下内容:

response.IsSuccessStatusCode

但是,如果您使用的是Apache 2.4,那么您将使用以下代码:

exampleSubSiteFolder

因此,任何试图访问.htaccess的人都会被停止。

答案 1 :(得分:1)

这就是我在虚拟主机环境中的表现(仅适用于2.4.x):

<Directory /path/to/exampleSubSiteFolder>
    <If "%{HTTP_HOST} == 'exampleSite.com'">
        Require all denied
    </If>
    <Else>
        Require all granted
    </Else>
</Directory>

如果您不是管理员,只能访问.htaccess,我只需将.htaccess放在指定目录中:

<If "%{HTTP_HOST} == 'exampleSite.com'">
    Require all denied
</If>
<Else>
    Require all granted
</Else>

我的建议,如果你可以管理网站和主要的conf,虚拟主机等,就不要使用.htaccess。

这就是假设你当然只有一个“全能”虚拟主机和/或.htaccess。

如果每个名称都有一个虚拟主机(这是每个人都应该这样做的话),那么在每个虚拟主机中允许所有被拒绝或被授予适当的位置就足够了。