防止.htaccess规则到子文件夹

时间:2015-04-04 04:13:37

标签: php wordpress apache .htaccess mod-rewrite

这是我的文件夹结构

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

我尝试通过在app文件夹的.htaccess中使用以下代码来覆盖.htaccess到子文件夹,但它显示了找不到相同的页面错误。

RewriteRule ^app/ - [L]

如何在没有错误的情况下访问www.mywebsite.com/app/firstproject

2 个答案:

答案 0 :(得分:0)

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

    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]

答案 1 :(得分:0)

  1. 删除app/.htaccess
  2. 在root .htaccess中使用此代码:
  3. 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