重写规则以将目录中的所有内容重定向到站点的根目录

时间:2014-11-19 01:35:22

标签: regex apache .htaccess url-redirection

我刚刚设置了我的第一个VPS。我有一个主要域名 - “mysite.com”。我在主域名目录中托管其他网站。为了使它们有条理,我将它们放在一个名为“sites”的文件夹中。

问题是我可以通过访问“mysite.com/sites/othersite/index.php以及辅助域名的网址”来访问辅助站点。

我知道我需要使用.htaccess来解决这个问题。到目前为止,我经过一些研究后尝试了以下内容:

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

这会将mysite.com/sites/重写回根网址,但mysite.com/sites/othersite/index.php仍然会生成othersite.com的副本

我正在寻找一个重写规则或一组规则,它们会将/ sites /目录中任何(文件,子文件夹等)的任何请求绝对重定向到根目录(mysite.com)

1 个答案:

答案 0 :(得分:1)

这不是做到这一点的方法。您应该设置虚拟主机并将Webroot设置为单独的文件夹。

为每个站点创建一个虚拟主机文件。并为httpd config中的整个目录编写一个include语句。

虚拟主机文件的示例:

<VirtualHost *:80>
    ServerName domainname.com
    DocumentRoot /var/www/vhosts/domainname.com
    <Directory /var/www/vhosts/domainname.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    </Directory>
    CustomLog /var/log/httpd/domainname.com-access.log combined
    ErrorLog /var/log/httpd/domainname.com-error.log
    LogLevel warn
</VirtualHost>

这将按域

分隔您的错误日志