我正在尝试编写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]