使用htaccess重定向到特定的子文件夹

时间:2013-05-09 13:07:21

标签: apache .htaccess mod-rewrite url-rewriting subdirectory

这是我的文件夹结构:

        
  •         website.com         
                  
    •                 主要                 
                            
      • SUB1
      •                     
      • SUB2
      •                 
                  
    •         
        

我希望能够通过网址sub1访问子文件夹website.com/sub1,我设法在.htaccess website/下添加以下内容:

RewriteCond %{REQUEST_URI} /sub1/(.*)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)$ main/sub1/index.php?view=$1 [QSA,L]

我的问题是虽然访问了index.php,但它始终会被访问,即使对于.js.css文件也是如此。所以我之前尝试添加以下规则(尽管我之前通过!-f条件排除了文件):

RewriteCond %{REQUEST_URI} /sub1/(.*)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ main/sub1/$1 [L,QSA]

但是你可以猜到,没有运气,即使我删除了另一个,也没有真正的文件进入第二个区块。

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteCond %{REQUEST_URI} ^/sub1/(.*)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/main/%{REQUEST_URI} -f
RewriteRule ^(.*)$ /main/$1 [L]

那么你的旧规则:

RewriteCond %{REQUEST_URI} /sub1/(.*)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)$ main/sub1/index.php?view=$1 [QSA,L]