情况如下:我有一个旧的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.org的VirtualHostconfiguration中,但没有任何效果 – 我只是获取PHP页面。
RewriteCond %{REQUEST_URI} /log/ RewriteCond %{QUERY_STRING} p=([^&;]*) RewriteRule ^/$ http://%{SERVER_NAME}/log/archives/%1.html [R,L]
我已经启用了日志loggingfunction,并且可以看到其他规则正在应用的外观,但不是这个。 对于%{REQUEST_URI}匹配模式,我的其他猜测似乎也没有任何影响( log , log/ %{REQUEST_URI} )。
我是mod_rewrite新手,这主要是货物的崇拜,所以我很确定我错了。 任何人都知道我应该在这里做什么?
尝试改变RewriteRule ^/$到RewriteRule ^/log/*$
事实上,你的规则永远不会匹配任何东西,因为
RewriteCond %{REQUEST_URI} /log/
但是URL必须包含/log/
RewriteRule ^/$...
只会匹配/确切地说 – 也就是顶级目录。