web-dev-qa-db-ja.com

壊れたリンクをサブディレクトリに修正するためのURL書き換え-サブディレクトリはルートディレクトリに移動しました

http://mydomain.com/betaでホストされているeコマースWebサイトを1年以上使用していたため、最終的にWebサイトをルートhttp://mydomain.comに移動することにしました

私のサイトが以前はサブディレクトリ/ betaでホストされていたときに、フォーラムなどへのリンク投稿を非常に多く行っていました。

サイトが/ betaでホストされ、サイトルートでホストされるようになったため、投稿したすべての古いリンクが壊れたリンクとして返されないmod_rewriteを実行する方法はありますか。

Mod_rewriteがこの問題の解決に役立つことを読みましたが、これは注意して行う必要があることも読みました。このサイトがわかりやすいURLを使用しているというヒントです。

1
Pritam Borkar

以下のルールは、すべての着信要求をhttp://www.example.com/beta/からhttp://www.example.com/にリダイレクトします(301、永続的なリダイレクト-URLバーのアドレスも変更します)。

# activate rewrite engine
RewriteEngine on
RewriteBase /

# redirect from /beta/ to /
RewriteRule ^beta/(.*)$ http://www.example.com/$1 [R=301,L,QSA]

書き換える必要がある場合(URLがブラウザの加算バーで同じままである-つまり、/beta/がまだ含まれている)、最後の行を次のように置き換えます。

RewriteRule ^beta/(.*)$ /$1 [L,QSA]
1
LazyOne

問題を複雑にする必要はありません。1つの「リダイレクト」行でサブディレクトリ内のすべてを処理し、301のことを行います。

Redirect permanent /beta /
1
ʍǝɥʇɐɯ