2011年9月 1日

[Apache-Users 7934] Re:サイト引越しで admin フォルダ以外をリダイレクトしたい

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

さとうふみやす @ OSSTech です。

At Thu, 01 Sep 2011 17:26:38 +0900,
takaesu wrote:
> サイトの引越しにて .htaccess に以下を記述する事で対応できました。

> Options +FollowSymLinks
> RewriteEngine on
> RewriteRule /* http://example.com/ [R=301,L]

正規表現「/*」は「『/』が 0 個以上現れる」にマッチするので、
実質的にはあらゆる URL にマッチします。

> このサイトは CMS(ZenCart) を使っていて、管理画面だけは転送させたくありません。
> 管理画面は admin フォルダ配下に集約されています。

以下のような感じに /admin/ は何もせず、それ以外をリダイレクト
すればいいでしょう。

RewriteEngine On
RewriteRule ^/admin/ - [last]
RewriteRule .* http://example.com/ [redirect=301,last]

ちなみに、これは httpd.conf に書く場合の記述です。
私は .htaccess で mod_rewrite を設定したことがないので、
どう書けばいいかわかりません。:-)

> http://hoge.jp/admin/ というアクセス以外はりダイレクト」という表現は
> どう書けば良いのでしょうか?

正規表現の勉強が必要に見受けられます。

> 正規表現部分で
> RewriteRule /[^(admin)] http://example.com/ [R=301,L]

正規表現「/[^(admin)]」は、「『/』に続いて『(』、『a』、『d』、
『m』、『i』、『n』、『)』以外の文字が現われる」 URL に
マッチします。

> と記述してみましたが、
> http://hoge.jp/index.php?main_page=index&cPath=3_14
> というアクセスに対してはリダイレクトして欲しいのにされませんでした。

例示するドメインには「exmaple.jp」を利用しましょう。

> (クエリパラメータがあるから!?)

関係ありません。mod_rewrite のルールと正規表現が間違っているからです。

--
-- Name: SATOH Fumiyasu (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- Personal Home: http://www.SFO.jp/blog/
--
入退会・変更・配送一時停止は以下へ
http://www.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2011年9月 1日 19:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/105974
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。