htaccessでURLをシンプルにしたいのです。色々調べたのですが、初めてhtaccessに手を出すにはレベルが高すぎました。


http://www.test.com/aaa/search/area.php?action=search&area=1&areas=1,23,24,25,26,27,28

area=1 が大エリア
areas=1,23,24,25,26,27,2 のカンマで区切られたものそれぞれ小エリアです。小エリアが複数表示されています。

これをhtaccess使ってURLをシンプルにするにはどうしたらいいのでしょうか??
何せhtaccessと正規表現については知識が乏しいので、どこまでシンプルにできるのかもわかりません。

分かる方、ぜひ教えてください!!

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

ベストアンサー

id:ftype No.2

回答回数53ベストアンサー獲得回数5

ポイント50pt

mod_rewriteを使うことによって短縮が可能です。


どこまでシンプルにできるかいくつか例を挙げさせてもらうと、

http://www.test.com/1/1,23,24,25,26,27,28.html

であったり、http://www.test.com/1/1/23/24/25/26/27/28/

サブドメインを使えるのであれば、http://大エリア.test.com/上と似たようなものなどなど・・・

とかいったことも可能です。

しかし、

http://www.test.com/1/1232425262728.html

とか、http://www.test.com/1/小エリアの合計数/ は、

1,23,24,25,26,27,28

1,2,3,24,25,26,27,28

だとか色々と被ってしまいややこしいことになるので避けましょう。

小エリアの数字それぞれに名前を付けてパラメーターとして出力すれば、もっと短縮することもできます。

1=a

23=b

24=c

25=d

26=e

27=f

28=g

のように名前を付けた場合、

http://www.test.com/1/abcdefg.htmlとかにも出来ます。

あえてここではやり方を述べませんが、

mod_rewriteはたくさんのサイトで解説されていますので、いろんなパターンを見ていくうちに理解できると思います。

がんばって下さいね。

その他の回答2件)

id:Bombastus No.1

回答回数409ベストアンサー獲得回数52

ポイント1pt

「URLをシンプルにする」の意味が分かりません。

具体的にどういうURLにしたいのか例示してください。


twitterで利用されているような「短縮URL」のことではないですよね?

.htaccessでは短縮URLを作成することはできませんので、念のため。

id:ftype No.2

回答回数53ベストアンサー獲得回数5ここでベストアンサー

ポイント50pt

mod_rewriteを使うことによって短縮が可能です。


どこまでシンプルにできるかいくつか例を挙げさせてもらうと、

http://www.test.com/1/1,23,24,25,26,27,28.html

であったり、http://www.test.com/1/1/23/24/25/26/27/28/

サブドメインを使えるのであれば、http://大エリア.test.com/上と似たようなものなどなど・・・

とかいったことも可能です。

しかし、

http://www.test.com/1/1232425262728.html

とか、http://www.test.com/1/小エリアの合計数/ は、

1,23,24,25,26,27,28

1,2,3,24,25,26,27,28

だとか色々と被ってしまいややこしいことになるので避けましょう。

小エリアの数字それぞれに名前を付けてパラメーターとして出力すれば、もっと短縮することもできます。

1=a

23=b

24=c

25=d

26=e

27=f

28=g

のように名前を付けた場合、

http://www.test.com/1/abcdefg.htmlとかにも出来ます。

あえてここではやり方を述べませんが、

mod_rewriteはたくさんのサイトで解説されていますので、いろんなパターンを見ていくうちに理解できると思います。

がんばって下さいね。

id:doropon No.3

回答回数94ベストアンサー獲得回数16

ポイント50pt

mod_rewriteかと思いますが、

.htaccessに

RewriteEngine on

RewriteRule ^area\/([0-9A-Za-z]+)/([0-9A-Za-z\,]+)?$ /area.php?action=search&area=$1&areas=$2 [L]

とすると、

http://www.test.com/aaa/search/area.php?action=search&area=1&are...

これが

http://www.test.com/aaa/search/area/1/1,23,24,25,26,27,28

こんな感じです。

とりあえず、action=searchは考慮していません。パターンが決まっていると思いますので、

それは書き換えにするか、決めつけてsearchだとしてしまうかかと。

id:goodbabies

http://www.test.com/aaa/search/area/1/1,23,24,25,26,27,28

なるほど、これくらいでいいです。とても参考になりました!ありがとうございます!!

2010/05/18 09:12:05

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

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

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

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

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