我正在尝试编写一个htaccess重定向,但它不能正常工作。 我当前(工作)htaccess将所有带有1个字符的html页面重定向到索引文件:
RewriteRule ^([a-zA-Z0-9]).html$ index.php?letter=$1
所以a.html被重定向到index.php?letter = a 现在我需要将页面a.html?page = 2重定向到index.php?letter = a& page = 2 基本上我想重定向网址,但保持动态部分完好无损。 以下所有内容都返回404:
RewriteRule ^([a-zA-Z0-9]).html?page=([0-9]+) index.php?letter=$1&page=$2
RewriteRule ^([a-zA-Z0-9]).html?page=(.*) index.php?letter=$1&page=$2
RewriteCond %{QUERY_STRING} page=(.*)
RewriteRule ^([a-zA-Z0-9]).html(.*) index.php?letter=$1&page=%1
我觉得我很接近,但我似乎无法到达那里:/ 有人能给我最后一次推动吗?
答案 0 :(得分:2)
您的RewriteRule
需要
RewriteRule ^([a-zA-Z0-9])\.html$ index.php?letter=$1 [QSA,NC,L]
请注意,网址参数不可用于RewriteRule
内的匹配。如果您只需要附加一个额外的URL参数,您可以使用[QSA]
标记来处理附加原始网址参数。
请注意,html
之前的点也需要转发\.
。 [L]
确保重写停止,并且不再应用其他规则(如果有的话)。