1

URLをarticle.php?id=123からarticle/123に書き換えたい

次のルールを追加しました、それはうまくいきます

  RewriteRule ^article/(.*) /article.php?id=$1 [PT]

また、301リダイレクトルールを追加して、article.php?id=123をarticle/123に移動する必要があることを検索エンジンに知らせたいと思います。次のルールを追加しましたが、機能していないようです。

  RewriteRule ^article.php?id=(.*)$ /article/$1 [R=301,L]
4

2 に答える 2

0

このようにしてみてください:

RewriteRule ^article.php?id=(.*)$ /article/$1 [L,R=301]
于 2012-07-24T19:40:47.107 に答える
0

URIは他のルールによって書き換えられるため、URIではなく実際のリクエストと照合する必要があります。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /article\.php\?id=([^\ ]+)
RewriteRule ^article\.php$ /article/%1? [R=301,L]

実際のリクエストと一致しない場合、リダイレクトループが発生します。

  1. ブラウザのリクエスト/article.php?id=123
  2. サーバーはにリダイレクトします/article/123
  3. ブラウザのリクエスト/article/123
  4. サーバーは内部で次のように書き換えます/article.php?id=123
  5. サーバーは内部的に一致し、ブラウザをにリダイレクトします/article/123
  6. ブラウザのリクエスト/article/123
  7. 4から繰り返します。
于 2012-07-24T19:49:53.693 に答える