1

我正在尝试编写一个 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 基本上我想重定向 url,但保留动态部分完好无损。以下所有内容都返回 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

我想我已经接近了,但我似乎无法到达那里:/谁能给我最后的推动?

4

1 回答 1

2

你的RewriteRule需要是

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

请注意,URL 参数不能RewriteRule. 如果您只需要附加一个额外的 URL 参数,您可以与标志一起执行此操作,该[QSA]标志将为您附加原始 URL 参数。

请注意,前面的点html也需要转义\.[L]确保重写停止并且不应用进一步的规则(如果有的话)。

于 2013-10-07T13:01:42.900 回答