[英]Exclude multiple paths from htaccess rewrite rule
我創建了一個新功能,希望能夠實現面包屑和更好的URL結構。
在此之前,我有以下規則:
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]
問題是此RewriteRule導致/ images包含的所有圖像都加載了文章的包含模板。
我可以想到三種可能的解決方案,但沒有實際的代碼:
1)我可以創建一個類別名稱數組嗎? 然后,我可以以某種方式使RewriteRule僅適用於這些名稱。
2)創建一個包含一些全局設置的類。 在這里有一些PHP定義或設置圖像路徑。 我所能想到的是;
define( "IMAGE_PATH", "//example.com/images" );
3)在Htacces文件中添加一些內容以從規則中排除某些路徑。
我知道MVC或類似的軟件會取得更好的效果。 這是關於我的學習的,請告訴我我是否在這里陷入困境!
非常感謝,亞當
您可以像這樣跳過所有現有文件和目錄 ,以防止所有圖像受到此新規則的影響:
# skip all existing files
RewriteCond %{REQUEST_FILENAME} !-f
# skip all existing directories
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L,QSA,B]
注意,在標志中添加了“ B”,這轉義了非字母數字字符,例如“&”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.