-1

私は最近、純粋な開発ドメインから、現在使用しているものとは別の CMS システムで処理されていたサイトがあったライブ サイトへの Web サイトの移動を支援しました。現在のシステムは Joomla ですが、私の質問にはあまり関係ないと思います。

そのため、現在のサイトでは、URL が標準の Joomla 形式から書き換えられ、index.php が取り除かれ、.html サフィックスがアドレスに追加されます。つまり、URL は次のようになります。

http://example.com/folder/page.html

別の CMS システムで処理されていた古いサイトでは、URL は次の構造になっていました。

http://example.com/side.php?id=1

私たちは、多くのサイトが私たちにリンクしている社会的組織であり、私たちが気づいていないサイトもかなりあります.私たちのサイトのルートを指していました。

次のように .htaccess をリダイレクトする方法を教えてください。

/side.php?id=* example.com のルートへ

この場合、異なる ID を持つページが自然にたくさんあるので、* は任意の数字を意味します。

彼らがwwwを指していても、私にとっては何の意味もありません。プレフィックスかどうか。

ご協力いただきありがとうございます。以前に回答された質問をしていないことを願っていますが、.htaccess に関する私の経験は非常に限られており、さまざまなソリューションを検索して試してみましたが、うまくいきませんでした。

4

3 に答える 3

2

ルート フォルダーの .htaccess に、次を追加します。

RewriteEngine on
RewriteCond %{QUERY_STRING} id=\d+
RewriteRule ^side\.php$ http://%{SERVER_NAME}/ [R=301,L,QSD] #Remove the ",QSD" for Apache <2.4.0, or to keep the query string.

R=301 は、ページが完全に移動されたことをブラウザ/検索エンジンに伝えます。

于 2012-06-08T07:37:09.743 に答える
0

ここで必要なのは、ページを新しい場所に移動していることをブラウザと検索エンジンに知らせるための301 Moved Permanently応答です。mod_rewrite を使用してすべてのリクエストをこの side.php ページにリダイレクトする代わりに、古い Web サイトの各ページを分析して、すべてのコンテンツが移動された場所を特定します。これを武器に、htaccess Rewrite ディレクティブを使用して、移動中の個々のページをブラウザーに通知します。

Redirect 301 /side.php?id=123 /about_us.html
Redirect 301 /side.php?id=456 /contact_us.html

この方法をお勧めするのは、古いページに移動した人を、単にホームページにリダイレクトするのではなく、要求していた古いページと同様のコンテンツを持つ新しいページにリダイレクトするためです。

于 2012-06-08T07:41:58.137 に答える
0

次のようなルールが機能するはずです。

RewriteCond %{HTTP_HOST} .*
RewriteCond %{QUERY_STRING} id=\d+
RewriteRule ^side.php http://example.com [L,R=301]

これにより、HTTP 301 応答で外部にリダイレクトされます (Moved Permanently)

于 2012-06-08T07:35:38.087 に答える