将.php?参数= XX的RewriteRule改为indexXX.html

时间:2014-03-13 20:41:22

标签: php regex apache .htaccess mod-rewrite

我有多个php文件,我必须将其转换为固定的html。所有的php文件都以这种方式命名index.php?menu = XX(其中XX是从1到80的数字)。我已将所有html文件命名为indexXX.html(其中XX是1到80之间的数字)。但现在我找不到一种方法来编写一个重定向规则,该规则将永久地从(example)index.php?menu = 17重定向到index17.html。

P.S。我也试图手动重定向(临时重定向,因为我正在测试):

Redirect 302 index.php?menu=6 index6.html

但是我收到500内部错误。如果我在文件名之前使用斜杠,那么没有错误,但我得到404说index.php无法找到。

1 个答案:

答案 0 :(得分:0)

  

从(example)index.php?menu = 17永久重定向到index17.html。

您可以将此规则用作第一条规则

RewriteCond %{THE_REQUEST} \s/+index\.php\?menu=([^\s&]+) [NC]
RewriteRule ^ /index%1.html? [R=302,L]