htAccess 操作查询字符串



我正在尝试编写htaccess规则来转换以下形式的URL:

http://example.com/PageViewer.aspx?id=348

自:

http://example.com/?page_id=15348

数字 15 是常量,后跟原始 URL 中的 id 值。

我尝试了以下规则:

RewriteCond %{QUERY_STRING} ^(.*)id=(.*)$
RewriteRule ^(.*)PageViewer.aspx$ $1?%1page_id=15%2 

但是,我得到的结果是这样的:

http://example.com/page_id=15348/?id=348

为什么缺少规则中使用的问号?为什么查询字符串显示在结果 URL 的末尾?我不完全理解htaccess重写规则...

通过使用 [NE] 标志来解决

RewriteCond %{QUERY_STRING} ^(.*)id=(.*)$
RewriteRule ^(.*)PageViewer.aspx$ $1?%1page_id=15%2 [NE]

最新更新