拒绝直接访问具有重定向的目录

时间:2018-11-03 01:30:26

标签: .htaccess

我有以下情况:

我的服务器有一个output目录,永远不要直接访问它,而应将根URL重定向到它:

  • 访问mydomain.com/test.html将在内部显示output/test.html的内容。
  • 访问mydomain.com/output/test.html应该返回404

使用此.htaccess可以轻松归档第一点:

RewriteEngine On
RewriteRule ^(?!output/)(.*)$ output/$1 [L]

问题是,如果我尝试直接访问mydomain.com/output/test.html,它也允许。

我尝试添加第二条规则:

RewriteCond %{THE_REQUEST} ^output/ [NC]
RewriteRule ^output - [F]

但是它显然会影响第一个,因此任何内容都可以在服务器上访问。

1 个答案:

答案 0 :(得分:1)

您的条件模式错误。您需要与完整的THE_REQUEST字符串匹配。

更改您的RewriteCond

RewriteCond %{THE_REQUEST} ^output/ [NC]

RewriteCond %{THE_REQUEST} /output/ [NC]