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]

1 つ目はhttp://hostname.com/post-1234.htmlのようなURL を取得し、ブラウザを http://hostname.com/photo-1234.html にリダイレクトするため、ルールでそれを photo.php に書き換えることができます。http://hostname.com/post.php?id=1234からhttp://hostname.com/photo.php?id=1234を除いて同じことを行います (クエリ文字列は 2 番目の末尾に自動的に追加されることに注意してください)。ルール)。

于 2012-07-10T20:19:04.593 に答える