2010-03-05 51 views
0

的.htaccess的mod_rewrite我最近發現了一篇文章網上說告訴我這一點:嵌套的文件夾結構

RewriteRule ^mock-up/([^/]+)/([^/]+) /mock-up/index.php?page=$1&section=$2 [NC] 

是推動我瘋了,現在唯一的事情是,如果我希望能有第二個目錄或不。像:

RewriteRule ^mock-up/([^/]+)/([^/]+) /mock-up/index.php?page=$1&section=$2 [NC] 
RewriteRule ^mock-up/([^/]+) /mock-up/index.php?page=$1 [NC] 

但是,這是打破了Apache ...所以怎麼辦?請幫忙,我需要爲我的客戶搜索,我寧願不必爲此製作單個文件。

回答

1

的問題是,mock-up/index.php也被mock-up/([^/]+)匹配。所以,你需要排除的目標,無論是直接:

RewriteRule ^mock-up/index\.php$ - [L] 

或間接:

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

那麼試試這個:

RewriteRule ^mock-up/index\.php$ - [L] 
RewriteRule ^mock-up/([^/]+)/([^/]+)$ /mock-up/index.php?page=$1&section=$2 [NC] 
RewriteRule ^mock-up/([^/]+)$ /mock-up/index.php?page=$1 [NC] 
+0

感謝你的快速回復,我很少會接觸。 htaccess除非我需要,但我注意到wordpress實現了這個聰明的策略。 的作品,但在這種「實體模型」目錄中的其他文件不再顯示出來,所以不必有什麼建議? 我感謝您的幫助! – rodenbushdesign 2010-03-05 21:09:23

+0

間接方法糾正了這個問題。謝謝!!! – rodenbushdesign 2010-03-05 21:19:29

+0

@Lucas:如果我的回答回答了您的問題,請將其標記爲已接受的答案。 – Gumbo 2010-03-08 17:06:04