1

次の .htaccess ファイルがあります。

RewriteEngine on
Options +FollowSymLinks

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule (.*)$ ./page.php?name=$1

また、301 リダイレクトを行いたい静的アドレスが約 20 あります。

次のようになります。

Redirect 301 http://www.example.com/category.php?id=3 http://www.example.com/books
Redirect 301 http://www.example.com/articles.php?id=124 http://www.example.com/birds

あらゆる方法を試しましたが失敗しました。

誰か助けてくれませんか?

4

1 に答える 1

1

リダイレクトの例にある一連のSEO フレンドリーな URL の後で、ブラウザのリダイレクトは必要なく、代わりに内部リダイレクトまたはエイリアスが必要であると推測しています。

RewriteRule ^/?books /category.php?id=3    [L]
RewriteRule ^/?birds /articles.php?id=124  [L]

多くのルールがあり、httpd.confにアクセスできる場合は、マップ ファイルとルールの書き換えを検討することをお勧めします。

以下のコメントに従って、ユーザー/クローラーを新しい URL 構造に強制したい場合は、ファイルに追加の書き換えルールのセットが必要になります (リダイレクトではありません)。

RewriteCond %{THE_REQUEST}      /category\.php     [NC]
RewriteCond %{QUERY_STRING}     ^id=3  [NC]
RewriteRule ^.*                 http://%{HTTP_HOST}/books?   [R=301,L]

参考までに: Apache mod_rewriteのドキュメントは、上記のルールが何をするものか不明な場合、またはもう少し抽象的な内容が必要な場合は、次の投稿を検討する価値があります。

于 2012-11-14T16:33:37.147 に答える