RewriteRule QSA用法

admin發表於2018-07-19

[QSA]用於在URL中擷取查詢字串,需要正規表示式小括號生成的子表示式配合。

首先看一段程式碼例項:

[Shell] 純文字檢視 複製程式碼
RewriteEngine On
RewriteRule /pages/(.+) /page.php?page=$1

假如現在訪問/pages/88?count=1頁面,只會對映到:/page.php?page=88。

因為預設條件下,不會獲取到查詢字串部分,(.+)只能匹配到88。

程式碼修改如下:

[Shell] 純文字檢視 複製程式碼
RewriteEngine On
RewriteRule /pages/(.+) /page.php?page=$1 [QSA]

訪問/pages/88?count=1頁面,將會影射到:/page.php?page=88&count=1,下面做一下分析:

(1).[QSA]和正規表示式的子表示式配合使用。

(2).88?count=1中的問號被更換為&。