我目前正在对我的博客网站进行大修,并找到了将所有当前页面转换为静态html页面的方法。他们目前正在使用友好的网址,它会重新映射到一个带有GET参数的中央index.php页面。
我想要做的改变是将这些相同的友好URL映射到他们的html对应物。我目前正在使用此规则:
RewriteRule ^archives?/([^/]+)/([^/.]+)/?$ archives/$1/$2.html
错误日志报告它无法找到blah.html/
,这意味着它正在寻找.html目录,而不是.html文件。这是一个更好的例子:
/archives/2009/original-name
应该映射到
/archives/2009/original-name.html
但实际上已映射到
/archives/2009/original-name.html/
我在这里缺少什么?
答案 0 :(得分:0)
你不需要反过来使用它吗?我没有测试代码,但它应该是这样的:
RewriteRule ^archives/(.*)/(.*).html archives/$1/$2
答案 1 :(得分:0)
我看不出你的正则表达式有什么明显错误。
猜测我会说你可能在这之后的某个地方有一个规则,它会将没有尾部斜杠的任何东西重定向到与斜杠相当的东西(这是避免重复内容问题的常见方法)。
答案 2 :(得分:0)
你没有在第二个陈述中逃避你的期限。试试这个。
RewriteRule ^archives?/([^/]+)/([^/\.]+)/?$ archives/$1/$2.html