0

私はmmoゲームファンサイトhttp://www.ddmsrealm.comを運営しています。このサイトでは、何年もの間、クエストとアイテムの情報を含むデータベースを実行してきました。もともとはMSSQL/ASPで構築されていましたが、最近MYSQL/PHPに変換しました。この変換では、データベースを最適化しました。そうすることで、構造と変数を少し変更しました。これで、新しいページが稼働していますが、新しいデータベース変数を使用して新しいデータベースページに再ルーティングするために、何百ものクエストと何千ものアイテムに対応するルールをhtaccessファイルに書き込もうとしてひどい時間を過ごしています。私はapache/htaccessを学ぶのに苦労しているので、すべての助けをいただければ幸いです。

変数名を変更するとともに、再ルーティングする必要がある2つの「詳細」ページがあります。実際のIDは同じなので、機能するはずです。

元のクエストページはaspページでした:

〜http://www.ddmsrealm.com/ddo/quests/QDetail.aspx

新しいクエストの詳細ページ(WordPressテンプレートページ)への恒久的な再ルーティング:

〜http://www.ddmsrealm.com/index.php/dungeons-and-dragons-quest-and-magic-item-database/dungeons-and-dragons-online-quest-info

ここで、パラメータを次のように書き直す必要があります。

古い:QuestIDから新しい:ddoQuestID

古い:SeriesIDから新しい:ddoSeriesID

つまり、アイデアは次のとおりです。

〜http://www.ddmsrealm.com/ddo/quests/QDetail.aspx?QuestID = 210&SeriesID = 30

次のように永続的にリダイレクトされます:

〜http://www.ddmsrealm.com/index.php/dungeons-and-dragons-quest-and-magic-item-database/dungeons-and-dragons-online-quest-info?ddoQuestID = 210&ddoSeriesID = 30

このための公式と手順を入手できれば、他のページにも適用できると確信しています。htaccessの書き換えに慣れていないので、正確に何がどのような順序で行われる必要があるのか​​を理解するのに苦労しています。ご想像のとおり、これによりSEOが悪化し、約5000ページ以上が404になりました。さらに、何百ものWebサイトがその古いURLにリンクしており、これを解決できるまでこれらのリンクは破棄されます。

これを理解するのを手伝ってくれてありがとう!

4

1 に答える 1

1

URIの書き換え自体は、を使用すると非常に簡単ですが、クエリ文字列を変更するには、を使用して変数と照合し、記号を使用して照合を逆参照RewriteRuleする必要があります。詳細については、ドキュメントを参照してください:http: //httpd.apache.org/docs/2.2/mod/mod_rewrite.htmlRewriteCond%{QUERY_STRING}

次のようなものを試してください。

RewriteEngine On

# Match the query string
RewriteCond %{QUERY_STRING} QuestID=([0-9]+)&SeriesID=([0-9]+)
# Rewrite the URI and append the new query string
RewriteRule ^ddo/quests/QDetail.aspx$ /index.php/dungeons-and-dragons-quest-and-magic-item-database/dungeons-and-dragons-online-quest-info?ddoQuestID=%1&ddoSeriesID=%2 [R=301,L]
于 2012-07-11T19:06:06.000 に答える