使用mod_rewrite将静态文件replace为WordPress页面的最佳方法

情况如下:我有一个旧的WordPress安装,我想存档为静态文件,但我也想保留旧的URL。 我已经使用wget创build了静态存档,并对文件名和链接进行了整理。 现在我想configurationApache来拦截对旧dynamicURL的请求,并将其replace为新的静态URL,例如:

 http://www.example.org/log/?p=1234 

要么

 http://www.example.org/log/index.php?p=1234 

应该redirect到

 http://www.example.org/log/archives/1234.html 

我已经尝试将以下内容添加到example.orgVirtualHostconfiguration中,但没有任何效果 – 我只是获取PHP页面。

 RewriteCond %{REQUEST_URI} /log/ RewriteCond %{QUERY_STRING} p=([^&;]*) RewriteRule ^/$ http://%{SERVER_NAME}/log/archives/%1.html [R,L] 

我已经启用了日志loggingfunction,并且可以看到其他规则正在应用的外观,但不是这个。 对于%{REQUEST_URI}匹配模式,我的其他猜测似乎也没有任何影响( loglog/ %{REQUEST_URI} )。

我是mod_rewrite新手,这主要是货物的崇拜,所以我很确定我错了。 任何人都知道我应该在这里做什么?

尝试改变RewriteRule ^/$RewriteRule ^/log/*$

事实上,你的规则永远不会匹配任何东西,因为

RewriteCond %{REQUEST_URI} /log/

但是URL必须包含/log/

RewriteRule ^/$...

只会匹配/确切地说 – 也就是顶级目录。