这是我的文件夹结构
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
?
- 删除
app/.htaccess
- 在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]