2012-07-18 21 views
2

我試圖弄清楚一種方法,以便如果我有一個包含JSON文件作爲索引的目錄(例如index.json),我可以擁有它當有人訪問該目錄時,index.json被傳遞到該目錄之外的「控制器」PHP文件,該文件解碼JSON並基於該文件生成頁面。這可能以某種方式通過.htaccess和/或PHP而不需要具有「控制器」PHP文件的多個副本?將子目錄中的JSON索引文件重定向到PHP控制器

回答

2

你可以嘗試使用mod_rewrite這樣做。假設你的php位指示是在這裏:/path/to/json.php,你會使用這些規則

RewriteEngine On 

# Check if request is for a directory 
RewriteCond %{REQUEST_FILENAME} -d 

# Check if there's an index.json file in that directory 
RewriteCond %{REQUEST_FILENAME}/index.json -f 

# Pass the request to the controller 
RewriteRule ^(.*)$ /path/to/json.php?file=$1/index.json [L] 

規則本身可以調整,以適應如何控制器的作品。如果您的json.php控制器可以查看請求的URI並且自己查找index.json文件,那麼您無法傳遞查詢字符串。

+0

那個解決方案非常完美的人 - 簡單而強大。我測試了它,它工作。 TY!是否有可能使它像內部那樣解決,但將原始目錄作爲可見URL保留在地址欄中? – ryanve 2012-07-19 04:02:52

+0

只要路徑是相對的,它就會將orig dir保持爲可見的URL。再次 - 這是王牌。 – ryanve 2012-07-31 02:25:14