我在htdocs中有以下目录结构:
htdocs/
.htaccess
index.php
foo/
bar/
priv/
我正在尝试实现干净的网址,并且基本上希望通过index.php
路由所有内容。我的.htaccess
文件如下:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f # <- referring to this next
RewriteRule .* index.php [L]
这可以直接访问foo/
和bar/
内的合法文件,但是我也可以访问priv/
中我想要的文件不允许。如何修改上面引用的行基本上说:“禁用不在priv/
中的文件?”
编辑:我正在努力避免“priv/.htaccess
” - &gt; “deny from all
”,而是希望在index.php
处理此处,就像任何其他“漂亮的网址”转换一样。
答案 0 :(得分:6)
您可以添加另一个RewriteCond
条件以匹配^priv/
并将其与OR结合使用:
RewriteCond $0 ^priv/ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]
如果匹配的部分路径以priv/
或开头,如果请求无法映射到现有文件,则应用此规则。