2013-05-09 118 views
0

這裏特定的子文件夾我的文件夾結構:重定向使用htaccess的

  • website.com
    • 主要
      • SUB1
      • SUB2

我希望能夠通過URL website.com/sub1,我設法將這樣做在下面的訪問子文件夾sub1.htaccesswebsite/

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] 

但你可以猜測,沒有運氣,沒有實際的文件有沒有去成第二塊中的偶數當我刪除另一個。

回答

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] 
+0

謝謝你,這完美地工作!我甚至可以將它用於'main'中的其他子文件夾;我測試了一下,我只是在我的「舊規則」中做了一些調整,使其工作。我認爲你DOCUMENT_ROOT和/ main/idea很棒。 – Nicolas 2013-05-09 20:36:17