mod_rewrite でURI短縮にについて教えてください

ディレクトリ構造は下記のようになっています

www.hoge.jp/abc/xxx/複数file
www.hoge.jp/abc/xxx/複数directory/複数file
www.hoge.jp/abc/xxx/複数directory/複数directory/複数file
www.hoge.jp/abc/xxx/複数directory/複数directory/複数directory/複数file
www.hoge.jp/abc/yyy/複数file
www.hoge.jp/abc/yyy/複数directory/複数file
www.hoge.jp/abc/yyy/複数directory/複数directory/複数file
www.hoge.jp/abc/yyy/複数directory/複数directory/複数directory/複数file
www.hoge.jp/abc/zzz/複数file
www.hoge.jp/abc/zzz/複数directory/複数file
www.hoge.jp/abc/zzz/複数directory/複数directory/複数file
www.hoge.jp/abc/zzz/複数directory/複数directory/複数directory/複数file

このディレクトリ構造を短くして /abc/無しでアクセスできるように
また、Rewriteした部分の最後の/ が無い場合でも / 付きでアクセスできるように
RewriteRuleをどのようにすればいいのか教えて下さい、よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2006/11/05 10:45:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント35pt

>/abc/無しでアクセスできるように

RewriteEngine On
RewriteRule ^((xxx|yyy|zzz).*) /abc$1 [L]

>Rewriteした部分の最後の/ が無い場合でも / 付きでアクセスできるように

これがちょっと意味が分かりませんでした。

ディレクトリへのアクセスは / が無くても標準でつけるようになってませんか?

id:nijinohasi

前回も親切にお答え頂きありがとうございました。文字数制限で長い説明が出来ませんでした

http://q.hatena.ne.jp/1156548377

前回教えていただいたようにしていたのですが、ディレクトリが増えたのと 階層が深い部分で、最後の / が無いとエラーになります。

Rewriteしていないディレクトリでは / が無い場合に自動的に / が付加されて正しくアクセスできますが、Rewriteした箇所では / が付加されずエラーになります。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(hoge\.jp)(:80)? [NC]

RewriteRule ^(.*) http://www.hoge.jp$1 [R=301,L]

RewriteRule ^/(xxx|yyy)/(.*)$ /abc/$1/$2 [L]

2006/10/29 11:06:35
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

>前回も親切にお答え頂きありがとうございました。

すいませんがそれは別の方です。

試していませんが、

RewriteEngine On
RewriteRule ^((xxx|yyy|zzz).*) /abc$1 [PT,L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^((xxx|yyy|zzz).*) /abc$1 [L]

のどちらかでいけると思います。

id:nijinohasi

人違い大変失礼いたしました。

Apache httpd.conf の<VirtualHost>内に記述しているのですが、どちらもエラーになってアクセスできません、他に考えられることは無いでしょうか。

2006/10/29 11:52:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません