2017-12-09 12 views
1

.htaccessを使用して、単一の場所へのリンクでサブディレクトリまたは追加のURL情報を書き換えます。私はこれをどのようにフレーズするかについてはあまりよく分からないので、以下の例を取り上げます。すべてのサブディレクトリを単一の場所にリダイレクト

OLD URL NEW URL
oldsite.com/shop newsite.com/shop
oldsite.com/shop/something newsite.com/shop
oldsite.com/shop/category/product/123.html newsite.com/shop
oldsite.com/shop/landingpage newsite.com/shop

まだ実行されてoldsite追加機能がいくつかありますので、私は唯一リダイレクトするように/shop(その後、何を)したいです新しいサイトに移動します。

.htaccess以外にもこれを行う方が簡単な場合は、それも素晴らしいでしょう。簡単のmod_rewriteで行うことができます

答えて

2

RewriteEngine On 
RewriteRule ^shop https://newsite.com/shop [R=301,L] 

これはURLを見ていきますと、それは「ショップ」で始まる場合(先頭は/自動的に無視されます)、新しいURLにリダイレクトします。 リダイレクト/ショッピングにも注意してください。それがあなたが望むものでなければ、パターンを変更しなければならないでしょう。

HTTPステータスコードは301 Moved Permanentlyですが、Rフラグを変更することで別の3XXコードに変更することができます。

+0

こんにちは、すぐに私に戻ってくれてありがとう!私はoldsite.com/shop/product123のためにこれを試してみましたが、それはnewsite.com/shopの代わりにnewsite.com/shopproduct123に私を連れて行きます – rukristin

+1

それは奇妙なことではありません(そして私はちょうどそれをテストして、それを誤解しないでください)。 .htaccessに "redirect permanent/shop http://newsite.com/shop"と似たものがありますか? RewriteRuleは明示的にそうしない限り(リダイレクトURLに '(...)'グループと '$ 1'を使用することで)末尾の文字が追加されるためです。 – janh

+1

@rukristinまた、ブラウザのキャッシュをクリアしてください。以前に(間違った)301を試したことがあるなら、これらはブラウザによってキャッシュされています。この理由で(ブラウザによってキャッシュされない)302(一時的な)リダイレクトでテストする方が簡単な場合がよくあります。 – DocRoot

関連する問題