我有以下情况:
我的服务器有一个output
目录,永远不应该直接访问,相反,根url应该重定向到它:
- 访问
mydomain.com/test.html
将在内部显示output/test.html
的内容 - Acessing
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]
但它显然影响了第一个,所以任何东西都可以在服务器上访问。
您的条件模式是错误的。您需要与完整的THE_REQUEST
字符串进行匹配。
更改重写和
RewriteCond %{THE_REQUEST} ^output/ [NC]
至
RewriteCond %{THE_REQUEST} /output/ [NC]