0

因此,出于安全原因,我想禁止http://www.domain.com/directory/但只允许该物理目录通过http://subdomain.domain.com/directory/

简单的方法是只移动目录,但我不能这样做,因为它会破坏应用程序,那么我将如何使用 .htaccess 来做到这一点?

我暂时使用以下方法阻止了它:

RedirectMatch 301 ^/directory/$ http://www.domain.com/

但当然,在任何一种情况下都会重定向子目录,所以我认为我可以放:

RedirectMatch 301 ^http://www.domain.com/directory/$ http://www.domain.com/

或类似的东西,但它不起作用......建议?

4

1 回答 1

0

您可以使用RewriteCond

RewriteEngine on
RewriteCond %{HTTP_HOST} !subdomain.domain.com
RewriteRule ^directory http://www.domain.com [R=301]

虽然更好,但我建议创建另一个具有相同文档根目录的虚拟主机。因此,在您的主服务器配置中,您将拥有

<VirtualHost *:80>
    # this is the existing virtual host for the www subdomain
    ServerName www.domain.com
    ...
    DocumentRoot /path/to/docroot
    # Add this next section
    <Directory /path/to/docroot/directory>
        Options allow,deny
        Deny from all
    </Directory>
</VirtualHost>
<VirtualHost *:80>
    # this is the existing vhost for the other subdomain
    ServerName subdomain.domain.com
    ...
    DocumentRoot /path/to/docroot
</VirtualHost>

当 Apache 不必解析.htaccess文件时,效率更高。

于 2010-07-23T21:49:34.673 回答