我有以下情况:
我的服务器有一个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]
但是它显然会影响第一个,因此任何内容都可以在服务器上访问。
答案 0 :(得分:1)
您的条件模式错误。您需要与完整的THE_REQUEST
字符串匹配。
更改您的RewriteCond
RewriteCond %{THE_REQUEST} ^output/ [NC]
到
RewriteCond %{THE_REQUEST} /output/ [NC]