2017-05-04 2 views
1

私はサブフォルダだけでなく、ホームページの後ろにあるものをリダイレクトしようとしています。例えばどうすれば301の後にサブフォルダをリダイレクトできますか?

example.com/subfolder/extra-stuff>example.com

extra-stuffは常に変化していると、自動生成されたので、私は、リダイレクトが同様ということを削除します。

私が使用しています:

Redirect 301 /subfolder(.*) http://www.example.com 

しかし、これはhttp://www.example.com/extra-stuffになります。

/subfolder(and anything else after subfolder)家にリダイレクトする方法はありますか?

ありがとうございました!

答えて

0

Redirectディレクティブは単純なプレフィックスマッチングを使用し、マッチ後のすべてがターゲットURLの最後にコピーされます(これはあなたが見ているものです)。しかしRedirectも正規表現をサポートしていないので、末尾に(.*)のようなパターンは厳密に無効です。

代わりにRedirectMatch(mod_aliasの一部)を使用する必要があります。これはregexを使用し、プレフィックスマッチングではありません。例えば

開始/subfolderhttp://www.example.com/にリダイレクトされないこと

RedirectMatch 301 ^/subfolder http://www.example.com/ 

すべての要求。

テストする前にブラウザのキャッチをクリアする必要があります。


"Magento"(おそらくmod_rewriteを使用しています)という質問にタグを付けました。ただし、すでにmod_rewriteを書き換え/リダイレクトに使用している場合は、このリダイレクトを行うためにmod_rewriteをmod_rewriteで使用する必要があります。これは競合が発生する可能性があるためです。

例えば、同等のmod_rewriteディレクティブは次のようになります

RewriteRule ^subfolder http://www.example.com/ [R=301,L] 

RewriteRuleパターンにはスラッシュの接頭辞がありません。これはあなたの.htaccessファイルの上部に行く必要があります。

関連する問題