2011-08-08 20 views
2

"optional parameters"という単語が自分の状況を正しく表しているかどうかわかりません。ここに私が必要なものがあります。URLの書き換えルールのオプションパラメータ

私は、URLのリダイレクトのために次のルールを書いた:

RewriteRule ^product/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)$ product/?sid=$2&pid=$3&title=$1&src=$4 [NC,L] 

基本的に、これは私が何をしたいのか

http://localdomain.com/product/?sid=abc123&pid=def456&title=Golf-Bats&src=stringy 

のようなものに

http://localdomain.com/product/Golf-Bats/abc123/def456/stringy 

のようなものをされてリダイレクトされます追加/オプション/潜在的に無限の数の引数(//型の構造体)を取り込むルールを書くそれでも同じURLにリダイレクトされます。

ことを意味し、次のURL S:すべてはちょうどURL

http://localdomain.com/product/?sid=abc123&pid=def456&title=Golf-Bats&src=stringy 

任意のアイデアを指している必要があります

http://localdomain.com/product/Golf-Bats/abc123/def456/stringy 
http://localdomain.com/product/Golf-Bats/abc123/def456/stringy/rand1 
http://localdomain.com/product/Golf-Bats/abc123/def456/stringy/rand1/rand2 
http://localdomain.com/product/Golf-Bats/abc123/def456/stringy/rand1/rand2/rand3 
etc. 

答えて

3

このルールを使用する - それは6日、さらにパスセグメント「オプション」ようになります:

RewriteRule ^product/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)(/.*)?$ product/?sid=$2&pid=$3&title=$1&src=$4 [NC,L] 

このルールは、(同じURLにリダイレクトされます)と同じように、すべてのこれらのURLを扱います:

http://localdomain.com/product/Golf-Bats/abc123/def456/stringy 
http://localdomain.com/product/Golf-Bats/abc123/def456/stringy/rand1 
http://localdomain.com/product/Golf-Bats/abc123/def456/stringy/rand1/rand2 
http://localdomain.com/product/Golf-Bats/abc123/def456/stringy/rand1/rand2/rand3 
  1. すでに(ケースを無視する)[NC]旗を持っているので、私はパターンでa-zA-Za-zを交換しました。

  2. は、一般的に、URLのこの種は、ビューのSEOの観点から良いではないことに注意してください - 私は強く、検索エンジンから重複コンテンツのペナルティを避けるために適切なURLを指定する<link rel="canonical" href="PROPER_URL" />の使用をお勧めします:

+0

こんにちは、ありがとう。それは魅力のように働いた!有用な、 – Nibhrit

+0

、ありがとう;) –