Html 单个查询字符串的apache重写规则

Html 单个查询字符串的apache重写规则,html,apache,.htaccess,url-rewriting,Html,Apache,.htaccess,Url Rewriting,我想让Apache重写 http://example.com/index.html?page=123 作为 我试过这个 RewriteRule ^page([^/\.]+).html index.html?page=$1 [L] 我明白了: "page123.html?page=1" 将其用于301重定向: RewriteCond %{QUERY_STRING} page=([0-9]+) RewriteRule ^index.html /page%1.html [L,R=301] 此

我想让Apache重写

http://example.com/index.html?page=123
作为

我试过这个

RewriteRule  ^page([^/\.]+).html index.html?page=$1 [L]
我明白了:

"page123.html?page=1"

将其用于301重定向:

RewriteCond %{QUERY_STRING} page=([0-9]+)
RewriteRule ^index.html /page%1.html [L,R=301]
此处演示:

如果要将掩码设置为,请改为执行以下操作:

RewriteRule ^page([0-9]+).html /index.html?page=$1 [L]

这里演示:

您好,我努力工作,找到了这个解决方案:

RewriteCond %{QUERY_STRING} page=([0-9]+)
RewriteRule ^index.html /page%1.html? [L,R=301]
演示:


谢谢

问题在于,它仍然包含在重新编写的URL末尾的查询。如果在重写规则的末尾包含
,则将停止添加查询。然后它就完美地工作了:)-
重写规则^index.html/页面%1.html?[L,R=301]
RewriteCond %{QUERY_STRING} page=([0-9]+)
RewriteRule ^index.html /page%1.html? [L,R=301]