0

古いサイトから、SEO 用の URL が改善された新しいサイトに切り替えています。私はこれをやろうとしています:

RewriteRule ^products/boots/materialid/(.*)/colour/(.*)$ http://www.mydomain.com/boots/$2/$1 [R=301,L]

ただし、問題は次のとおりです。

1) を使用する代わりに(.*)、次の文字を使用できるように指定できますか?

  • 任意の英数字a-zA-Z0-9
  • ドイツの特殊 UTF8 文字などの任意のユーロ文字
  • _-記号
  • シンボルを含めることもできます+(例: 黒 + 革)

2)上記が機能しない場合、これに関する私の一般的な知識のために、末尾のスラッシュがオプションになるように上記を更新するにはどうすればよいですか? たとえば、上記のルールの場合、

www.mydomain.com/materialid/leather/colour/blue/

私を送る

www.mydomain.com/blue//leather

余分なスラッシュは、元の URL の「青」の後のスラッシュが原因で発生しますが、これを除外する必要があります。

4

1 に答える 1

3

これを試して:

RewriteRule ^products/boots/materialid/([^/]*)/colour/([^/]*)/?$ http://www.mydomain.com/boots/$2/$1 [R=301,L]

[^/]スラッシュ以外の任意の文字に一致します。 /?オプションの末尾のスラッシュを意味します (書き換えられた URL に含まれないように、キャプチャ用の括弧の外側にあることに注意してください)。

編集

コメントに従って、オプションの /index.php を追加するには:

RewriteRule ^products/boots/materialid/([^/]*)/colour/([^/]*)(/|/index\.php)?$ http://www.mydomain.com/boots/$2/$1 [R=301,L]
于 2012-07-24T13:00:32.040 に答える