2015-04-04 45 views
0

规则这里是我的文件夹结构防止htaccess来的子文件夹

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

回答

0

在root htaccess文件中编写所有规则。 add RewriteRule^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] 
0
  1. 删除app/.htaccess
  2. 有这样的代码在根目录的.htaccess:

根的.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 
+0

它仍然有在将上面的.htaccess放在我的根目录中后,页面没有找到异常,我按照你的建议将'.htaccess'关掉了'app'。 – AngularAngularAngular 2015-04-04 06:23:26

+0

我也从'app/firstproject'中移除了'.htaccess'就是这个原因? – AngularAngularAngular 2015-04-04 06:25:04

+0

是的,除了根目录以外,不应该有任何.htaccess – anubhava 2015-04-04 06:36:26