1

なぜそれが機能しないのか、解決策を探していることに興味があります。

以下は私のhtaccessにあります

RewriteRule ^field/category/([a-zA-Z0-9\-]+)&([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

これはうまく機能し、URL は domain.com/field/category/Ball&Drinks になります。

& を - に変更して domain.com/field/category/Ball-Drinks にするにはどうすればよいですか

私は試します

RewriteRule ^field/category/([a-zA-Z0-9\-]+)-([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

そしてそれはうまくいきません。- 文字はリテラルとして解釈されません。誰でも助けることができますか?ありがとう。

4

2 に答える 2

0

- 文字をエスケープする必要があります。

RewriteRule ^field/category/([a-zA-Z0-9\-]+)\-([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2
于 2013-04-21T07:56:42.740 に答える
0

これは古い質問であることは知っていますが、これを理解するのに1時間費やしたので、答えを共有する必要があると考えました:

ハイフンを に置き換えて[\-]、RewriteRule を取得し、文字列リテラルとして扱います。

したがって、最終的なコードは次のようになります。^field/category/([a-zA-Z0-9\-]+)[\-]([a-zA-Z0-9\-]+)$ field.php?cat[]=$1&cat[]=$2

于 2015-08-27T15:27:02.273 に答える