ディレクトリからサブディレクトリにページをリダイレクトするにはどうすればよいですか?

ディレクトリからサブディレクトリにページをリダイレクトするにはどうすればよいですか?

最近、ウェブサイトのすべてのコンテンツをディレクトリからルート ディレクトリに移動しました。つまり、ディレクトリを含むページにアクセスするリクエストを、ルート ディレクトリ内の同じページにwww.mysite.com/shopリダイレクトする必要がありました。/shop

www.mysite.com/shop/categories/washroom

www.mysite.com/categories/washroom

これは、以前ディレクトリを使用していたサイト内のすべてのページで実行する必要がありました/shop

ここで次のような解決策が示されました:

RedirectMatch (^/shop/)(.*) http://www.mysite.com/$2

それは完璧に動作しますが、ディレクトリにあるソフトウェアの古いバージョンに戻す必要がある/shopため、完全に逆のリダイレクトが必要になります。

www.mysite.com/categories/washroom 

www.mysite.com/shop/categories/washroom 

誰か助けてくれませんか?

答え1

以下を試してみてください:

RedirectMatch (^/categories/washroom/)(.*) http://www.mysite.com/shop/categories/washroom/$1

それは動作しますか?

答え2

論理を逆にしてみましょう:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/shop
RewriteRule ^/(.*)$ http://%{SERVER_NAME}/shop/$1 [L,R]

関連情報