借助.htaccess偽靜態(tài)組件,我們可以實現(xiàn)很多網頁需要的功能,比如URL重寫、301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔,其中使用最多的就是URL重寫。然而,URL重寫指令RewriteRule最多只能攜帶9個參數(shù),超過9個參數(shù)后就無法正常解析。在實際應用中,多于9個參數(shù)傳遞的情況比比皆是,那么,咱們就來研究一下如何突破.htaccess偽靜態(tài)的9個參數(shù)限制。
既然按普通的方式無法實現(xiàn),那么,可以將代碼進行拆分成2行,如下所示:
RewriteRule ^products(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?).html$ $9&attr1=$1&attr2=$2&attr3=$3&attr4=$4&attr5=$5&attr6=$6&attr7=$7&attr8=$8 [C,NC]
RewriteRule ^(.*?)-(.*?)-(.*?)-(.*?)-(.*?)-(.*?)$ products.php?$7&attr9=$1&attr10=$2&attr11=$3&attr12=$4&attr13=$5&attr14=$6 [QSA,L,NC]
需要注意的是,第一行只有9個參數(shù),其中,第9個參數(shù)的目的是為了將從第9個起的參數(shù)做一個連接并傳遞給下一行的代碼。其中后的C是起到鏈接其后命令的作用。NC是對大小寫不敏感。這樣一來,咱們可以用RewriteRule傳遞更多參數(shù)了。
筆者在研究這個問題的時候,走了一些彎路,主要是對鏈接參數(shù)一直沒正確理解。程序員朋友可以研究一下上述代碼,若有不明白的,歡迎咨詢溝通,以便少走一些彎路。
本文網址:http://news.jyspkj.cn/news/n822.html
本文由藝瓊網絡原創(chuàng),禁止轉載、復制、傳播,深圳市藝瓊網絡科技有限公司保留著作權。