-1

サイトをあるフレームワークから別のフレームワークに移動しましたが、重要なページ(約20)をリダイレクトしたいと思います。apache rewriteを使用してそれらをリダイレクトする方法は?次に例を示します。

Old: http://mydomain.com/ba/stream.php?kat=15
New: http://www.mydomain.com/bs/about-us/our-partners

Old: http://mydomain.com/ba/stream.php?kat=29
New: http://www.mydomain.com/bs/catalogues/it-catalogue

また、重要なページがリストされた後、残りのすべてのリンクを次の形式でリダイレクトしたいと思います。

http://mydomain.com/ba/whatever-is-here

http://www.mydomain.com/bs/

TerryEの提案に従って、機能していない最新のコードを添付します:)

RewriteCond %{QUERY_STRING} ^kat=15$
RewriteRule ^stream\.php$ http://www.mydomain.com/bs/about-us/our-partners [R=301,L]

もう1つの注意:このコードを使用して、ルートドメインをwwwサブドメインにリダイレクトします。

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

このルートを特定のページのリダイレクト用のコードの下のwwwコードに配置しhttp://mydomain.com/ba/stream.php?kat=15ました。ブラウザでテストすると、次の場所にリダイレクトされます。http://www.mydomain.com/bs/ba/stream.php?kat=15

4

1 に答える 1

1

アドナン、

次の行をに追加する必要がありますDOCROOT/.htaccess.htaccessこれは、サブディレクトリにファイルがないことを前提としていますba。(理由の説明については、 .htaccess rewriteをデバッグするためのヒントを参照してください。)

RewriteEngine On
RewriteBase   /
#
# Redirect kat 15 to the Partners page 
#
RewriteCond %{QUERY_STRING}   ^kat=15$
RewriteRule ^ba/stream\.php$  http://www.mydomain.com/bs/about-us/our-partners? [R=301,L]
#
# Redirect all other kat ids to the corresponding bs page 
#
RewriteCond %{QUERY_STRING}   ^kat=(\d+)$
RewriteRule ^ba/stream\.php$  http://www.mydomain.com/bs/%1? [R=301,L]

ノート:

  • ルールは、UPIから先行パス(この場合は/)を差し引いたものと一致します
  • 末尾が必要ですか?置換文字列で、既存のクエリパラメータを抑制します。
  • %nパラメーターは、最後に成功した条件の一致から一致変数を取得します。
于 2012-08-11T12:56:39.257 に答える