阻止对子文件夹的.hta访问规则


Prevent .htaccess rules to the child folder

这是我的文件夹结构

www.mywebsite.com
www.mywebsite.com/app
www.mywebsite.com/app/firstproject
www.mywebsite.com/app/secondtproject

在根目录中,我安装了wordpress。它允许我访问www.mywebsite.com/app,但当我尝试访问www.mywebsite.com/app时,它总是显示page not found,我可以猜测这是因为根文件夹中的.htaccess

这是.htaccess根文件夹

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

我试图通过在应用程序文件夹的.htaccess中包含以下代码来将.htaccess覆盖到子文件夹,但它显示了相同的页面未找到错误。

RewriteRule ^app/ - [L]

如果没有该错误,我如何访问www.mywebsite.com/app/firstproject

  1. 删除app/.htaccess
  2. 在root.htaccess中有以下代码:

root.htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(index'.php$|app/) - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
# END WordPress

在根htaccess文件中写入所有规则。添加重写规则^app/firstproject$-[L]以防止在此路径中重写。对于/firstproject中的进一步重写,您需要类似于web根的条件和规则

    RewriteEngine On
    RewriteBase /
    RewriteRule ^app/firstproject$ - [L] #add longer path first
    RewriteRule ^index.php$ - [L] #no need to escape '.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]