1

我使用这个重写:

RewriteRule post-(.*)\.html$ post.php?id=$1

但此后将文件名 post.php 更改为 photo.php 所以我将其更改为

RewriteRule photo-(.*)\.html$ photo.php?id=$1

这很好,但是当访问者来自搜索引擎并被定向到原始文件名 post.php?id=? 所以需要添加(我认为)301重定向,我试过了:

RewriteRule photo-(.*)\.html$ post.php?id=$1

和:

RewriteRule photo-(.*)\.html$ post-(.*)\.html$[L,R=301]

但两者都没有工作,老实说还没有真正的线索,请帮忙。

4

1 回答 1

1

我想你希望它是相反的方式。当人们访问您的URL ( post.php?id=) 时,重定向到URL 。您要么想要其中之一:

RewriteRule post-(.*)\.html$ photo-$1.html [R=301]

RewriteRule post\.php$ photo.php [R=301]

第一个采用http://hostname.com/post-1234.html之类的 URL并将浏览器重定向到http://hostname.com/photo-1234.html,以便您的规则可以将其重写为 photo.php,第二个除了http://hostname.com/post.php?id=1234http://hostname.com/photo.php?id=1234之外,它的作用相同(请注意,第二个查询字符串会自动附加到末尾规则)。

于 2012-07-10T20:19:04.593 回答