2012-04-01 28 views
0

此重寫規則適用於domain.com/news,但我希望能夠將多個級別解析爲諸如domain.com/news/2012/party/zeke等變量在mod_rewrite中從「目錄」獲取x個變量

我嘗試過使用正則表達式,但失敗了。

RewriteEngine on 
RewriteBase/
RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L] 

還試圖解決方案在這裏: mod_rewrite with multiple variables

using mod_rewrite to simulate multiple sub-directories

//編輯:看來我可以只每升一級增加一個規則,但它是possibel有一個規則,做各個層面?

RewriteRule ^([^/\.]+)/?$ /page.php?page=$1 [L] 

RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /page.php?page=$1&sub=$2 [L] 

回答

1

您可以有遞歸規則,但是重寫的所有部分都是數據。那麼如何將它轉換爲查詢字符串,因爲它不知道如何命名變量。

如果你有/section/news/year/2012/user/zeke/那麼你可以使用(未測試): -

RewriteRule ^section/\w+/([^/]+)/([^/]+)/(.*)$  news/$3?$1=$2 [NC,N,QSA] 
RewriteRule ^section/(\w+)/?$      page.php?page=$1 [NC,QSA,L] 

這應該結束了重寫`page.php文件頁=新聞&年= 2012 &用戶=齊克

隨着你正在嘗試做的事情,你將不得不改變你的需求並使用上述版本,或者將它們全部傳遞給PHP中的頁面,並使用PHP進行工作。

+0

謝謝!我正在升級我的CMS,這將是一個很大的幫助。 – jerrygarciuh 2012-04-03 14:02:30