htaccess重定向动态网址

时间:2013-10-07 12:02:41

标签: .htaccess parameters rewrite

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

我觉得我很接近,但我似乎无法到达那里:/ 有人能给我最后一次推动吗?

1 个答案:

答案 0 :(得分:2)

您的RewriteRule需要

RewriteRule ^([a-zA-Z0-9])\.html$ index.php?letter=$1 [QSA,NC,L]

请注意,网址参数可用于RewriteRule内的匹配。如果您只需要附加一个额外的URL参数,您可以使用[QSA]标记来处理附加原始网址参数。

请注意,html之前的点也需要转发\.[L]确保重写停止,并且不再应用其他规则(如果有的话)。