それでも画像などはリダイレクトされませんが、すべてのタグのsrcパスを変更しないとリダイレクトできないと思いますよね?
キャプチャグループを使用してください!
RewriteRule (.*) /root/$1 [R=301,L]
ご覧$1
のとおり、パターンにブラケットがキャプチャされたものへの参照があります。したがって、すべてのURIは、ルートフォルダ内の同等のものにリダイレクトされます。これは、サブフォルダー、すべて( "img / something.jpg"-> "root / img / something.jpg")にも当てはまります。
ただし、リダイレクトされたURLが書き換えられるため、このルールだけでは無限ループになります。例:リクエストは/index.htmlに送信され、/ root / index.htmlにリダイレクトされますが、再度キャプチャされ、/ root / root / index.htmlにリダイレクトされます...したがって、この問題に対処するには、RewriteCondを導入する必要があります、 お気に入り
RewriteCond %{REQUEST_URI} !^/root/
これは、「要求されたURIが「/root/」で始まらない場合」を意味します。これらはあなたが始めるはずです。
リダイレクトを行う別の、おそらくより経済的な方法は、RedirectMatchディレクティブを使用することですが、書き換えられたURLが「root」で始まらないという条件を含める必要があるため、正規表現は少し厄介です(リダイレクトを回避するため)ループ)。私は今これをテストすることはできませんが、
RedirectMatch ^/(?!root/)(.*) /root/$2
おそらくトリックを行うでしょう。(この(?!root)
ビットはネガティブな先読みであり、もちろんそのようなパターンはrewriteRuleでも使用できます)。