1

パススラッグをクエリパラメータに変更するための書き換えルールを作成しようとしています。これはWebサービス用であり、ホストがapiで始まる場合にのみこのルールを書き直す必要があります。私がキャプチャして書き直そうとしている2つのナメクジがあります。1つ目はオプションで、バージョン(つまり、v1.2)であり、2つ目はサービスドメイン(つまり、顧客、トランザクションなど)です。

http://api.domain.com/v2.5/customersは?version = 2.5&domain=customersに書き換える必要があります

また、デフォルトバージョンをサポートしたいので

http://api.domain.com/customersは?version =&domain=customersに書き換える必要があります

.htaccessファイルは次のようになります。

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^api\..*
RewriteRule ^v([\d\.]*)?\/?([^\/]*)$ ?version=$1&domain=$2

上記の最初の例は正常に機能しますが、デフォルトのバージョンパスを機能させることができません。私はたくさんの異なることを試みました。^。*vで始めると役立つと思いましたが、そうではありませんでした。開始文字がわからないときに一致させる方法を知っている人はいますか?

4

1 に答える 1

1

試す:

RewriteCond %{HTTP_HOST} ^api\..*
RewriteCond %{QUERY_STRING} !version=
RewriteRule ^(v([\d\.]*))?\/?([^\/]*)$ /?version=$2&domain=$3 [L]

これにより、/vパーツがオプションになります。

  • /v2.5/foo->/?version=2.5&domain=foo
  • /foo->/?version=&domain=foo
  • /v/foo->/?version=&domain=foo
于 2012-09-11T20:19:03.930 に答える