htaccess限制url访问子域名

时间:2014-01-16 09:43:26

标签: php apache .htaccess mod-rewrite cpanel

所以基本上我有以下的public_html结构:

/main
/subdomains

到目前为止,我已设法使其无法通过设置直接访问/子域名:

www.site.com/subdomains

但是,假设我有一个名为projects的子域名:

projects.site.com

在文件夹中:

/子域/项目/

现在,如果知道了url,可以通过以下方式访问projects文件夹:

site.com/subdomains/projects。

我想要做的是阻止此行为,因此访问子域的唯一方法是通过正确的子域网址: projects.site.com。

如果可以通过 Cpanel 完成,那么很棒,但我并不羞于使用 .htaccess 来完成它。在写下你的答案时请记住,我并不是非常流利,但请详细解答。

2 个答案:

答案 0 :(得分:1)

将此规则放在DocumentRoot/.htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:/subdomains/\1/
RewriteRule ^ - [F]
  • RewriteCond此处是对2个变量%{HTTP_HOST}%{REQUEST_URI}的组合。
  • :用作2个变量之间的分隔符。
  • ([^.]+)正在捕获组#1中的子域名(例如项目)
  • /subdomains/\1/将REQUEST_URI与后引用#1
  • 匹配
  • 如果condition为true,则返回禁止错误。

答案 1 :(得分:0)

作为快速回答,您可以重命名存储网页文件的文件夹。你的例子是项目:

让我们假设您的文件存储在/var/www/projects.files

只需使用servername projects.yourdomain.com

创建VHost

反过来,无法使用yourdomain.com/projects

来呼叫网站