最近、ウェブサイトのすべてのコンテンツをディレクトリからルート ディレクトリに移動しました。つまり、ディレクトリを含むページにアクセスするリクエストを、ルート ディレクトリ内の同じページに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]