我在网站根文件夹的.htaccess文件中从索引块中排除文件夹时遇到了一些问题。
在搞砸了一下后,我找到了一个解决方案:
<IfModule mod_rewrite.c>
RewriteEngine on
</IfModule>
我在我想要排除的文件夹中的新.htaccess文件中写了这个。这解决了我的问题(在保持子文件夹被阻止的情况下解锁该特定文件夹)这很好,但据我所知,这段代码不应该做任何事情。这怎么可能有效?
其他信息:
- 排除文件夹包含Nibbleblog安装
- 根.htaccess文件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://url.url/$1 [R,L]
RewriteCond %{HTTP_HOST} ^www\.nyxcode\.xyz [NC]
RewriteRule (.*) https://url.url/$1 [R=301,L]
ErrorDocument 404 /errors/notfound.html
ErrorDocument 403 /errors/forbid.html
Options -Indexes
答案 0 :(得分:0)
通过将RewriteEngine on
添加到子文件夹中的.htaccess文件,您已告诉Apache父文件夹的.htaccess不会控制子文件夹中的重写。这是因为Apache首先检查与URL匹配的文件夹,然后才查找父文件夹。
如果你有这个:
/
.htaccess
/subfolder1
.htaccess
/subfolder2
# no .htaccess file here
然后/
和/subfolder2
中的文件受RewriteRule
中的/.htaccess
约束。但是/subfolder1
仅受其自己的.htaccess文件的约束,只要它适用。如果没有RewriteEngine on
,您就无法告诉Apache /subfolder1/.htaccess
适用于重写目的。使用RewriteEngine on
,您正在说,&#34;使用此.htaccess进行重写,&#34;即使那里没有规则。