我的public_html文件夹中有一个.htaccess文件,如下所示:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
RewriteCond %{REQUEST_URI} !"/ntransfers/"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
在/ ntransfers /有一个子目录,/ admin /。在这个子目录中有另一个.htaccess文件:
Options -Indexes
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /home/devsend/public_html/ntransfers/admin/.htpasswd
Require valid-user
我的目标是在重写规则时忽略/ ntransfers /及其所有子目录......
RewriteRule ^ index.php [QSA,L]
...我正在使用slimPHP进行路由。
我尝试更改RewriteCond中的目录,并将RewriteEngine Off行放在位于不同子目录级别的各种.htaccess文件中。
我有什么办法可以完全忽略RewriteRule的目录及其所有子目录吗?
修改
我已将我的.htaccess更新为以下内容并且没有运气:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
RewriteCond %{REQUEST_URI} !^/ntransfers$
RewriteCond %{REQUEST_URI} !^/ntransfers/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
编辑2
如果我按以下方式改变我的子目录.htaccess文件,它可以工作......
Options -Indexes
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /home/devsend/public_html/ntransfers/admin/.htpasswd
#Require valid-user
...但是这会禁用身份验证。
编辑3
通过所有更改,这就是两个.htaccess文件的样子:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
RewriteCond %{REQUEST_URI} !^/ntransfers$
RewriteCond %{REQUEST_URI} !^/ntransfers/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
在子目录中:
Options -Indexes
<FilesMatch ".">
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /home/devsend/public_html/ntransfers/admin/.htpasswd
Require valid-user
</FilesMatch>
目录结构:
/www
.htaccess
/ntransfers
/admin
.htacess
答案 0 :(得分:0)
你几乎拥有它,
变化
RewriteCond %{REQUEST_URI} !"/ntransfers/"
到
RewriteCond %{REQUEST_URI} !^/ntransfers/
编辑:错过了子目录位,试试这个:
RewriteCond %{REQUEST_URI} !^/ntransfers$
RewriteCond %{REQUEST_URI} !^/ntransfers/.*
答案 1 :(得分:0)
很晚很多年了,但是如果你的文件夹结构是正确的,你在子文件夹中拼错了htaccess:P