我々は最近、私はそれが前にあったようにアクセスできる古いサイト上でのユーザーのディレクトリを維持したいと思い、http://newdomain.com
を言って、別のサーバーに弊社のWebサイトを移動しますつまり、http://oldomain.com/~user
ですが、ルートフォルダの下にアクセス可能なものは新しいドメインを指します。古いサーバーのユーザーディレクトリは/home/user
ファイルシステムにあります。だから、私は次のルールを書いた:http://newdomain.com/~user
:二番目のルールは完璧に動作しながら、に、RedirectMatch
RedirectMatch permanent ^/~(.*) /home/~$1
RedirectMatch permanent ^/(.*) http://newdomain.com/$1
、最初のものは、まだ次のように新しいサイトにマップしたいと考えています。
古いサイトの/var/www/html
のものはすべて新しいサイトにリダイレクトされますが、/home
のものはリダイレクトされないように、2つのルールを修正するにはどうすればよいですか?
- ここ
正しくユーザーのホームページにアクセスするためのURLをマップしますが、ブラウザは文句や自分のサイトが表示されないベンのソリューションに基づいて、新しいコードです。ルートフォルダのURLリダイレクトは正常に動作します。
RewriteEngine on
# RewriteBase/-- I had to comment this as the apache did not like it
Rewriterule ^/~(.*) /~$1 [R=301,L]
RewriteCond %{REQUEST_URI} !^/home/~
RewriteRule ^/(.*) http://newdomain.com/$1 [R=301,L]
ありがとう@Ben。あなたが提供したものに変更を加える必要がありました。なぜなら、Apacheはデフォルトの.confファイル内のRewriteBase /が気に入らなかったからです。私の質問にあなたの解決策に基づいて私の更新されたコードを見てください。 しかし、ユーザーのホームディレクトリのURLがhttp://olddomain.com/~userのように同じままであることがわかっても、ブラウザはエラーメッセージを表示します。 ページが正しくリダイレクトされていません。 Firefoxは、サーバーがこのアドレスの要求を決して完了しない方法でリダイレクトしていることを検出しました。 –
.htaccessファイルはどこに置かれましたか?それはルートフォルダですか? – Ben
私は実際に '/ etc/apache2/sites-enabled/000-default.conf'にあるデフォルトの設定ファイルにこれらのルールを入れました。 .htaccessファイルがルートフォルダで動作していないという問題がありました。 –