2010-12-07 125 views
0

你好,很長時間的聽衆,第一次打電話來這裏!
謝謝你們所有人分享的出色建議。
mod_rewrite:如何根據「可用性」匹配目錄或根目錄中的文件?

我已經設置了這mod_rewrite的規則:

RewriteRule ^([^/.]+)/([^/.]+)/?$ $1--$2.php?%{QUERY_STRING} [L] 
RewriteRule ^([^/.]+)/?$ $1.php?%{QUERY_STRING} [L] 

他們讓/公司/服務/重定向到公司 - services.php。或/ company/to company.php。完美的作品。

但現在我想另一條規則,如果我把services.php放在物理目錄/ company /裏面,它會匹配並重定向它。如果失敗了,尋找我的最初規則。 (而做不到這一點,返回404)

我想這將是爲包括簡單:

RewriteRule ^([^/.]+)/([^/.]+)/?$ $1/$2.php?%{QUERY_STRING} [L] 

,但並非如此。它會返回一個404代替。我有點難住,因爲這違背了我相信mod_rewrite的工作原理(如果規則不匹配,請轉到下一個。)
謝謝任何​​指針!

回答

0

找到它。作爲參考,這是一套完整的規則:

RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f 
RewriteRule ^([^/.]+)/([^/.]+)/?$ /$1/$2.php?%{QUERY_STRING} [L] 
RewriteRule ^([^/.]+)/([^/.]+)/?$ $1--$2.php?%{QUERY_STRING} [L] 
RewriteRule ^([^/.]+)/?$ $1.php?%{QUERY_STRING} [L] 
+0

無需附加查詢字符串。 – Gumbo 2010-12-07 14:30:54

相關問題