如何允许访问子文件夹及其内容,但不允许访问其父文件夹和内容?

时间:2013-12-03 10:33:05

标签: regex apache .htaccess mod-rewrite

我正试图解决.htaccess规则,我正在深入探索这个规则!

我在服务器上有以下布局的网站:

  

www.domain.com/mysite

现在,我需要允许访问以下内容:

  

www.domain.com/mysite/admin(以及“admin”文件夹中的所有内容)

但是,阻止访问:

  

www.domain.com/mysite(以及所有内容,除了匹配的内容   “admin”文件夹)

到目前为止,我有这个:

  

RedirectMatch ^ / admin /?(。*)http://www.domain.com/mysite/admin/ $ 1

     

RedirectMatch ^ /(?!admin)/?(。*)http://www.domain2.com/ $ 1

但它似乎不起作用?

1 个答案:

答案 0 :(得分:1)

将此代码放入DOCUMENT_ROOT/mysite/.htaccess文件中:

RewriteEngine On
RewriteBase /mysite/

RewriteRule ^((?!admin(?:/|$)).*)$ http://www.domain2.com/$1 [L,R]

(?!...) is the syntax for negative lookahead
(?:..) is the syntax for non-capturing group
(?!admin(?:/|$)) matches anything that is not starting from admin/ Or admin$