1
我創建了一個新函數,希望實現麪包屑和更好的URL結構。從htaccess重寫規則排除多個路徑
此之前,我有以下規則:
RewriteRule ^pages/([a-z0-9,&-]+)/?$ ?action=viewArticleName&page_identifier=$1 [L,NC,QSA,B]
這意味着,
www.example.com/pages/contact
從數據庫中返回了一篇文章。現在我想改變這種做法,我的網址看起來像
www.example.com/categoryname/pagename
所以我對這個工作重寫規則:
RewriteRule ^([^/]+)/([^/]+)$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L]
問題是這樣的規則被造成任何圖像被包括來自/圖像加載包括該文章的模板。
我能想到的三種可能的解決方案,而不是實際的代碼:
1)我可以創建類別名稱的陣列?然後我可以以某種方式使RewriteRule只適用於這些名稱。
2)創建一個包含一些全局設置的類。在這有一些PHP,定義或設置圖像路徑。我能想到的就是;
define("IMAGE_PATH", "//example.com/images");
3)添加一些東西到Htacces文件中,從規則中排除某些路徑。
我知道MVC或類似的會取得更好的結果。這是關於我的學習,請告訴我,如果我在這裏挖了一個洞!
非常感謝, 亞當
這就是完美的工作!你介意解釋一下哪部分代碼會跳過所有現有的文件/目錄? – atoms 2014-09-03 07:33:11
我在回答中添加了一些評論。基本上'%{REQUEST_FILENAME}!-f'表示它是否不是文件,'%{REQUEST_FILENAME}!-d'表示如果請求不是用於目錄。 – anubhava 2014-09-03 07:34:57
完美的作品,感謝闡述將標記您的評論 – atoms 2014-09-03 07:35:46